<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MuPDFCore: MuPDFCore/MuPDF.cs Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="Doxy.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectlogo"><img alt="Logo" src="icon.svg"/></td>
  <td id="projectalign">
   <div id="projectname">MuPDFCore<span id="projectnumber">&#160;1.6.0</span>
   </div>
   <div id="projectbrief">Multiplatform .NET bindings for MuPDF</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('_mu_p_d_f_8cs_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle"><div class="title">MuPDF.cs</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span><span class="comment">/*</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span><span class="comment">    MuPDFCore - A set of multiplatform .NET Core bindings for MuPDF.</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno">    3</span><span class="comment">    Copyright (C) 2020  Giorgio Bianchini</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno">    4</span><span class="comment"></span> </div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span><span class="comment">    This program is free software: you can redistribute it and/or modify</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno">    6</span><span class="comment">    it under the terms of the GNU Affero General Public License as</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno">    7</span><span class="comment">    published by the Free Software Foundation, version 3.</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span><span class="comment"></span> </div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span><span class="comment">    This program is distributed in the hope that it will be useful,</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno">   10</span><span class="comment">    but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno">   11</span><span class="comment">    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno">   12</span><span class="comment">    GNU Affero General Public License for more details.</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno">   13</span><span class="comment"></span> </div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno">   14</span><span class="comment">    You should have received a copy of the GNU Affero General Public License</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno">   15</span><span class="comment">    along with this program.  If not, see &lt;http://www.gnu.org/licenses/&gt;</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno">   16</span><span class="comment">*/</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno">   17</span> </div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno">   18</span><span class="keyword">using </span>System;</div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="keyword">using </span>System.IO;</div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="keyword">using </span>System.IO.Pipes;</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span><span class="keyword">using </span>System.Runtime.InteropServices;</div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="keyword">using </span>System.Text;</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="keyword">using </span>System.Threading.Tasks;</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span> </div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span>[assembly: System.Runtime.CompilerServices.InternalsVisibleTo(<span class="stringliteral">&quot;Tests&quot;</span>)]</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"><a class="line" href="namespace_mu_p_d_f_core.html">   26</a></span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespace_mu_p_d_f_core.html">MuPDFCore</a></div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span>{<span class="comment"></span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span><span class="comment">    /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span><span class="comment">    /// Exit codes returned by native methods describing various errors that can occur.</span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span><span class="comment">    /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"><a class="line" href="namespace_mu_p_d_f_core.html#aa6919d62a772f0334777d47f9c2d6c59">   31</a></span><span class="comment"></span>    <span class="keyword">public</span> <span class="keyword">enum</span> <a class="code hl_enumeration" href="namespace_mu_p_d_f_core.html#aa6919d62a772f0334777d47f9c2d6c59">ExitCodes</a></div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span>    {<span class="comment"></span></div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span><span class="comment">        /// An error occurred while creating the context object.</span></div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#aa6919d62a772f0334777d47f9c2d6c59a3f66bfb083008aa950e19bd55e18ba4b">ERR_CANNOT_CREATE_CONTEXT</a> = 129,</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span><span class="comment"></span> </div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span><span class="comment">        /// An error occurred while registering the default document handlers with the context.</span></div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno">   41</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#aa6919d62a772f0334777d47f9c2d6c59ac2a53c854bd7df2cb83c33fe5e9c9f72">ERR_CANNOT_REGISTER_HANDLERS</a> = 130,</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno">   42</span><span class="comment"></span> </div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno">   43</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno">   44</span><span class="comment">        /// An error occurred while opening a file.</span></div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno">   45</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno">   46</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#aa6919d62a772f0334777d47f9c2d6c59a0cf3f4e04e6e130e6b2fe7fcb3b56514">ERR_CANNOT_OPEN_FILE</a> = 131,</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno">   47</span><span class="comment"></span> </div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno">   48</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno">   49</span><span class="comment">        /// An error occurred while determining the total number of pages in the document.</span></div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno">   50</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno">   51</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#aa6919d62a772f0334777d47f9c2d6c59a2069854c805b265111026c25d0bc289e">ERR_CANNOT_COUNT_PAGES</a> = 132,</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno">   52</span><span class="comment"></span> </div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno">   53</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno">   54</span><span class="comment">        /// An error occurred while rendering the page.</span></div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno">   55</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno">   56</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#aa6919d62a772f0334777d47f9c2d6c59a59c376560d2f34232de87c12482802de">ERR_CANNOT_RENDER</a> = 134,</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno">   57</span><span class="comment"></span> </div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno">   58</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno">   59</span><span class="comment">        /// An error occurred while opening the stream.</span></div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno">   60</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno">   61</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#aa6919d62a772f0334777d47f9c2d6c59a2135fb9898d6144b6f07bfa53be568b8">ERR_CANNOT_OPEN_STREAM</a> = 135,</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno">   62</span><span class="comment"></span> </div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno">   63</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno">   64</span><span class="comment">        /// An error occurred while loading the page.</span></div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno">   65</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno">   66</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#aa6919d62a772f0334777d47f9c2d6c59a5721278b19873b32ad0b33a37153130b">ERR_CANNOT_LOAD_PAGE</a> = 136,</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno">   67</span><span class="comment"></span> </div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno">   68</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno">   69</span><span class="comment">        /// An error occurred while computing the page bounds.</span></div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno">   70</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno">   71</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#aa6919d62a772f0334777d47f9c2d6c59ab5f04447fc2be743ee90433c6102b2c7">ERR_CANNOT_COMPUTE_BOUNDS</a> = 137,</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno">   72</span><span class="comment"></span> </div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno">   73</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno">   74</span><span class="comment">        /// An error occurred while initialising the mutexes for the lock mechanism.</span></div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno">   75</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno">   76</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#aa6919d62a772f0334777d47f9c2d6c59a1ea4e7a692221b58c56eefb81f8948ce">ERR_CANNOT_INIT_MUTEX</a> = 138,</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno">   77</span><span class="comment"></span> </div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno">   78</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno">   79</span><span class="comment">        /// An error occurred while cloning the context.</span></div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno">   80</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno">   81</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#aa6919d62a772f0334777d47f9c2d6c59a39b183f9aa381c0a658eea8d21ae18fc">ERR_CANNOT_CLONE_CONTEXT</a> = 139,</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno">   82</span><span class="comment"></span> </div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno">   83</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno">   84</span><span class="comment">        /// An error occurred while saving the page to a raster image file.</span></div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno">   85</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno">   86</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#aa6919d62a772f0334777d47f9c2d6c59a29a0556711fd1d509ffaf28d4e310bf9">ERR_CANNOT_SAVE</a> = 140,</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno">   87</span><span class="comment"></span> </div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno">   88</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno">   89</span><span class="comment">        /// An error occurred while creating the output buffer.</span></div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno">   90</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno">   91</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#aa6919d62a772f0334777d47f9c2d6c59ad1ec485635100cd9f67621545c57c092">ERR_CANNOT_CREATE_BUFFER</a> = 141,</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno">   92</span><span class="comment"></span> </div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno">   93</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno">   94</span><span class="comment">        /// An error occurred while creating the document writer.</span></div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno">   95</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno">   96</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#aa6919d62a772f0334777d47f9c2d6c59ab0e97dc320dccbe7ba125b739a0e907a">ERR_CANNOT_CREATE_WRITER</a> = 142,</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno">   97</span><span class="comment"></span> </div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno">   98</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno">   99</span><span class="comment">        /// An error occurred while finalising the document file.</span></div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno">  100</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno">  101</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#aa6919d62a772f0334777d47f9c2d6c59afc8882584a964901c4ff7664a4149ad1">ERR_CANNOT_CLOSE_DOCUMENT</a> = 143,</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno">  102</span><span class="comment"></span> </div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno">  103</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno">  104</span><span class="comment">        /// An error occurred while creating an empty structured text page.</span></div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno">  105</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno">  106</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#aa6919d62a772f0334777d47f9c2d6c59a996e6a66df495bef599119bd710ff138">ERR_CANNOT_CREATE_PAGE</a> = 144,</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno">  107</span><span class="comment"></span> </div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno">  108</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno">  109</span><span class="comment">        /// An error occurred while populating the structured text page</span></div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno">  110</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno">  111</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#aa6919d62a772f0334777d47f9c2d6c59a7458e0b67daac2900065e77fdc8c9845">ERR_CANNOT_POPULATE_PAGE</a> = 145,</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno">  112</span><span class="comment"></span> </div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno">  113</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno">  114</span><span class="comment">        /// No error occurred. All is well.</span></div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno">  115</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno">  116</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#aa6919d62a772f0334777d47f9c2d6c59a28b393e44874f1d095f7c1281de0ffc2">EXIT_SUCCESS</a> = 0</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno">  117</span>    }</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno">  118</span><span class="comment"></span> </div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno">  119</span><span class="comment">    /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno">  120</span><span class="comment">    /// File types supported in input by the library.</span></div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno">  121</span><span class="comment">    /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"><a class="line" href="namespace_mu_p_d_f_core.html#a6f956802ff33af39b555fc95caf5486f">  122</a></span><span class="comment"></span>    <span class="keyword">public</span> <span class="keyword">enum</span> <a class="code hl_enumeration" href="namespace_mu_p_d_f_core.html#a6f956802ff33af39b555fc95caf5486f">InputFileTypes</a></div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno">  123</span>    {<span class="comment"></span></div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno">  124</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno">  125</span><span class="comment">        /// Portable Document Format.</span></div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno">  126</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno">  127</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#a6f956802ff33af39b555fc95caf5486fabcd1b68617759b1dfcff0403a6b5a8d1">PDF</a> = 0,</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno">  128</span><span class="comment"></span> </div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno">  129</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno">  130</span><span class="comment">        /// XML Paper Specification document.</span></div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno">  131</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno">  132</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#a6f956802ff33af39b555fc95caf5486fa9b1f26de4b8088056d8998a85a576464">XPS</a> = 1,</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno">  133</span><span class="comment"></span> </div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno">  134</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno">  135</span><span class="comment">        /// Comic book archive file (ZIP archive containing page scans).</span></div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno">  136</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno">  137</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#a6f956802ff33af39b555fc95caf5486fade8e361453cf9f764a4abe9d486f8fbe">CBZ</a> = 2,</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno">  138</span><span class="comment"></span> </div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno">  139</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno">  140</span><span class="comment">        /// Portable Network Graphics format.</span></div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno">  141</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno">  142</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#a6f956802ff33af39b555fc95caf5486fa55505ba281b015ec31f03ccb151b2a34">PNG</a> = 3,</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno">  143</span><span class="comment"></span> </div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno">  144</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno">  145</span><span class="comment">        /// Joint Photographic Experts Group image.</span></div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno">  146</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno">  147</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#a6f956802ff33af39b555fc95caf5486fa907e06a16862d82ca6907a28a68d0ad6">JPEG</a> = 4,</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno">  148</span><span class="comment"></span> </div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno">  149</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno">  150</span><span class="comment">        /// Bitmap image.</span></div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno">  151</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno">  152</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#a6f956802ff33af39b555fc95caf5486faa5d5ca1447586e23dc011f8c0cc0a6db">BMP</a> = 5,</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno">  153</span><span class="comment"></span> </div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno">  154</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno">  155</span><span class="comment">        /// Graphics Interchange Format.</span></div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno">  156</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno">  157</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#a6f956802ff33af39b555fc95caf5486fa95a66bab4c0c0fd8387e680daeff99a8">GIF</a> = 6,</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno">  158</span><span class="comment"></span> </div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno">  159</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno">  160</span><span class="comment">        /// Tagged Image File Format.</span></div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno">  161</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno">  162</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#a6f956802ff33af39b555fc95caf5486face0dbe5045edda1a0e9686ce899798ea">TIFF</a> = 7,</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno">  163</span><span class="comment"></span> </div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno">  164</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno">  165</span><span class="comment">        /// Portable aNyMap graphics format.</span></div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno">  166</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno">  167</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#a6f956802ff33af39b555fc95caf5486fa030a56ad7ea4b8755a07a7e61eaa6e8d">PNM</a> = 8,</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno">  168</span><span class="comment"></span> </div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno">  169</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno">  170</span><span class="comment">        /// Portable Arbitrary Map graphics format.</span></div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno">  171</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno">  172</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#a6f956802ff33af39b555fc95caf5486faf2a62109ee6526c8760e4e7497861aac">PAM</a> = 9,</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno">  173</span><span class="comment"></span> </div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno">  174</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno">  175</span><span class="comment">        /// Electronic PUBlication document.</span></div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno">  176</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno">  177</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#a6f956802ff33af39b555fc95caf5486fa5c31b30ee6cc376dbc6882ca038161e5">EPUB</a> = 10,</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno">  178</span><span class="comment"></span> </div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno">  179</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno">  180</span><span class="comment">        /// FictionBook document.</span></div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno">  181</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno">  182</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#a6f956802ff33af39b555fc95caf5486fa3986d1fd62384c8cdaa0e7c82f2740d1">FB2</a> = 11</div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno">  183</span>    }</div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno">  184</span><span class="comment"></span> </div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno">  185</span><span class="comment">    /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno">  186</span><span class="comment">    /// Raster image file types supported in output by the library.</span></div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno">  187</span><span class="comment">    /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"><a class="line" href="namespace_mu_p_d_f_core.html#afb84d65324afe9d4edaf5b15c128bc7e">  188</a></span><span class="comment"></span>    <span class="keyword">public</span> <span class="keyword">enum</span> <a class="code hl_enumeration" href="namespace_mu_p_d_f_core.html#afb84d65324afe9d4edaf5b15c128bc7e">RasterOutputFileTypes</a></div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno">  189</span>    {<span class="comment"></span></div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno">  190</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno">  191</span><span class="comment">        /// Portable aNyMap graphics format.</span></div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno">  192</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno">  193</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#a6f956802ff33af39b555fc95caf5486fa030a56ad7ea4b8755a07a7e61eaa6e8d">PNM</a> = 0,</div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno">  194</span><span class="comment"></span> </div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno">  195</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno">  196</span><span class="comment">        /// Portable Arbitrary Map graphics format.</span></div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno">  197</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno">  198</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#a6f956802ff33af39b555fc95caf5486faf2a62109ee6526c8760e4e7497861aac">PAM</a> = 1,</div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno">  199</span><span class="comment"></span> </div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno">  200</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno">  201</span><span class="comment">        /// Portable Network Graphics format.</span></div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno">  202</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno">  203</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#a6f956802ff33af39b555fc95caf5486fa55505ba281b015ec31f03ccb151b2a34">PNG</a> = 2,</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno">  204</span><span class="comment"></span> </div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno">  205</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno">  206</span><span class="comment">        /// PhotoShop Document format.</span></div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno">  207</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno">  208</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#afb84d65324afe9d4edaf5b15c128bc7ea9c0ec6bfdae0da828545d2d836f34d02">PSD</a> = 3</div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno">  209</span>    };</div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno">  210</span><span class="comment"></span> </div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno">  211</span><span class="comment">    /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno">  212</span><span class="comment">    /// Document file types supported in output by the library.</span></div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno">  213</span><span class="comment">    /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"><a class="line" href="namespace_mu_p_d_f_core.html#a4cb9694810eeb8c98f699eac7bebeca6">  214</a></span><span class="comment"></span>    <span class="keyword">public</span> <span class="keyword">enum</span> <a class="code hl_enumeration" href="namespace_mu_p_d_f_core.html#a4cb9694810eeb8c98f699eac7bebeca6">DocumentOutputFileTypes</a></div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno">  215</span>    {<span class="comment"></span></div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno">  216</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno">  217</span><span class="comment">        /// Portable Document Format.</span></div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno">  218</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno">  219</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#a6f956802ff33af39b555fc95caf5486fabcd1b68617759b1dfcff0403a6b5a8d1">PDF</a> = 0,</div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno">  220</span><span class="comment"></span> </div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno">  221</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno">  222</span><span class="comment">        /// Scalable Vector Graphics.</span></div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno">  223</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno">  224</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#a4cb9694810eeb8c98f699eac7bebeca6acd15a75c26008696647b31a3f0de43b3">SVG</a> = 1,</div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno">  225</span><span class="comment"></span> </div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno">  226</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno">  227</span><span class="comment">        /// Comic book archive format.</span></div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno">  228</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno">  229</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#a6f956802ff33af39b555fc95caf5486fade8e361453cf9f764a4abe9d486f8fbe">CBZ</a> = 2</div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno">  230</span>    };</div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno">  231</span><span class="comment"></span> </div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno">  232</span><span class="comment">    /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno">  233</span><span class="comment">    /// Pixel formats supported by the library.</span></div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno">  234</span><span class="comment">    /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"><a class="line" href="namespace_mu_p_d_f_core.html#ade1eb4d4f9c9c8a66bde9152ea9e41bb">  235</a></span><span class="comment"></span>    <span class="keyword">public</span> <span class="keyword">enum</span> <a class="code hl_enumeration" href="namespace_mu_p_d_f_core.html#ade1eb4d4f9c9c8a66bde9152ea9e41bb">PixelFormats</a></div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno">  236</span>    {<span class="comment"></span></div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno">  237</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno">  238</span><span class="comment">        /// 24bpp RGB format.</span></div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno">  239</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno">  240</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#ade1eb4d4f9c9c8a66bde9152ea9e41bba889574aebacda6bfd3e534e2b49b8028">RGB</a> = 0,</div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno">  241</span><span class="comment"></span> </div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno">  242</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno">  243</span><span class="comment">        /// 32bpp RGBA format.</span></div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno">  244</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno">  245</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#ade1eb4d4f9c9c8a66bde9152ea9e41bbaea3495a278957dc58165e48a8945469f">RGBA</a> = 1,</div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno">  246</span><span class="comment"></span> </div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno">  247</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno">  248</span><span class="comment">        /// 24bpp BGR format.</span></div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno">  249</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno">  250</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#ade1eb4d4f9c9c8a66bde9152ea9e41bba2ad5640ebdec72fc79531d1778c6c2dc">BGR</a> = 2,</div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno">  251</span><span class="comment"></span> </div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno">  252</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno">  253</span><span class="comment">        /// 32bpp BGRA format.</span></div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno">  254</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno">  255</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#ade1eb4d4f9c9c8a66bde9152ea9e41bba5a1fe3c61c9e2fd6dbbc823589f6e697">BGRA</a> = 3</div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno">  256</span>    }</div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno">  257</span><span class="comment"></span> </div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno">  258</span><span class="comment">    /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno">  259</span><span class="comment">    /// Possible document encryption states.</span></div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno">  260</span><span class="comment">    /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"><a class="line" href="namespace_mu_p_d_f_core.html#a789c0ee2f3e1b7e939c1a94921119f02">  261</a></span><span class="comment"></span>    <span class="keyword">public</span> <span class="keyword">enum</span> <a class="code hl_enumeration" href="namespace_mu_p_d_f_core.html#a789c0ee2f3e1b7e939c1a94921119f02">EncryptionState</a></div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno">  262</span>    {<span class="comment"></span></div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno">  263</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno">  264</span><span class="comment">        /// The document is not encrypted.</span></div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno">  265</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno">  266</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#a789c0ee2f3e1b7e939c1a94921119f02a12a47fe2191718837d09d52b17419ec2">Unencrypted</a> = 0,</div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno">  267</span><span class="comment"></span> </div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno">  268</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno">  269</span><span class="comment">        /// The document is encrypted and a user password is necessary to render it.</span></div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno">  270</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno">  271</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#a789c0ee2f3e1b7e939c1a94921119f02adef09fa4a833717d38298eb37c861af8">Encrypted</a> = 1,</div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno">  272</span><span class="comment"></span> </div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno">  273</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno">  274</span><span class="comment">        /// The document is encrypted and the correct user password has been supplied.</span></div>
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno">  275</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno">  276</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#a789c0ee2f3e1b7e939c1a94921119f02ac76fd517e45cc95709f4ac106efa4a94">Unlocked</a> = 2</div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno">  277</span>    }</div>
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno">  278</span><span class="comment"></span> </div>
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno">  279</span><span class="comment">    /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno">  280</span><span class="comment">    /// Possible document restriction states.</span></div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno">  281</span><span class="comment">    /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"><a class="line" href="namespace_mu_p_d_f_core.html#a8508181e09f4f3d05dfd9555e9519331">  282</a></span><span class="comment"></span>    <span class="keyword">public</span> <span class="keyword">enum</span> <a class="code hl_enumeration" href="namespace_mu_p_d_f_core.html#a8508181e09f4f3d05dfd9555e9519331">RestrictionState</a></div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno">  283</span>    {<span class="comment"></span></div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno">  284</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno">  285</span><span class="comment">        /// The document does not have any restrictions associated to it.</span></div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno">  286</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno">  287</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#a8508181e09f4f3d05dfd9555e9519331a89c6caacc7047b0a535412d7f939f870">Unrestricted</a> = 0,</div>
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno">  288</span><span class="comment"></span> </div>
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno">  289</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno">  290</span><span class="comment">        /// Some restrictions apply to the document. An owner password is required to remove these restrictions.</span></div>
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno">  291</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno">  292</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#a8508181e09f4f3d05dfd9555e9519331aecdee5de15af6876cfab0801bb36f445">Restricted</a> = 1,</div>
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno">  293</span><span class="comment"></span> </div>
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno">  294</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno">  295</span><span class="comment">        /// The document had some restrictions and the correct owner password has been supplied.</span></div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno">  296</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno">  297</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#a789c0ee2f3e1b7e939c1a94921119f02ac76fd517e45cc95709f4ac106efa4a94">Unlocked</a> = 2</div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno">  298</span>    }</div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno">  299</span><span class="comment"></span> </div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno">  300</span><span class="comment">    /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno">  301</span><span class="comment">    /// Document restrictions.</span></div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno">  302</span><span class="comment">    /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"><a class="line" href="namespace_mu_p_d_f_core.html#abff8cbdf3a6dcdbcd7b52a8696ac2595">  303</a></span><span class="comment"></span>    <span class="keyword">public</span> <span class="keyword">enum</span> <a class="code hl_enumeration" href="namespace_mu_p_d_f_core.html#abff8cbdf3a6dcdbcd7b52a8696ac2595">DocumentRestrictions</a></div>
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno">  304</span>    {<span class="comment"></span></div>
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno">  305</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno">  306</span><span class="comment">        /// No operation is restricted.</span></div>
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno">  307</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno">  308</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#abff8cbdf3a6dcdbcd7b52a8696ac2595a6adf97f83acf6453d4a6a4b1070f3754">None</a> = 0,</div>
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno">  309</span><span class="comment"></span> </div>
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno">  310</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00311" name="l00311"></a><span class="lineno">  311</span><span class="comment">        /// Printing the document is restricted.</span></div>
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno">  312</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno">  313</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#abff8cbdf3a6dcdbcd7b52a8696ac2595a13dba24862cf9128167a59100e154c8d">Print</a> = 1,</div>
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno">  314</span><span class="comment"></span> </div>
<div class="line"><a id="l00315" name="l00315"></a><span class="lineno">  315</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno">  316</span><span class="comment">        /// Copying the document is restricted.</span></div>
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno">  317</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno">  318</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#abff8cbdf3a6dcdbcd7b52a8696ac2595a5fb63579fc981698f97d55bfecb213ea">Copy</a> = 2,</div>
<div class="line"><a id="l00319" name="l00319"></a><span class="lineno">  319</span><span class="comment"></span> </div>
<div class="line"><a id="l00320" name="l00320"></a><span class="lineno">  320</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno">  321</span><span class="comment">        /// Editing the document is restricted.</span></div>
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno">  322</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00323" name="l00323"></a><span class="lineno">  323</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#abff8cbdf3a6dcdbcd7b52a8696ac2595a7dce122004969d56ae2e0245cb754d35">Edit</a> = 4,</div>
<div class="line"><a id="l00324" name="l00324"></a><span class="lineno">  324</span><span class="comment"></span> </div>
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno">  325</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno">  326</span><span class="comment">        /// Annotating the document is restricted.</span></div>
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno">  327</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00328" name="l00328"></a><span class="lineno">  328</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#abff8cbdf3a6dcdbcd7b52a8696ac2595a5493350be66a200980ee57ddd9debc1b">Annotate</a> = 8</div>
<div class="line"><a id="l00329" name="l00329"></a><span class="lineno">  329</span>    }</div>
<div class="line"><a id="l00330" name="l00330"></a><span class="lineno">  330</span><span class="comment"></span> </div>
<div class="line"><a id="l00331" name="l00331"></a><span class="lineno">  331</span><span class="comment">    /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00332" name="l00332"></a><span class="lineno">  332</span><span class="comment">    /// Password types.</span></div>
<div class="line"><a id="l00333" name="l00333"></a><span class="lineno">  333</span><span class="comment">    /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00334" name="l00334"></a><span class="lineno"><a class="line" href="namespace_mu_p_d_f_core.html#ae9af8906676327d741663484e282c9a9">  334</a></span><span class="comment"></span>    <span class="keyword">public</span> <span class="keyword">enum</span> <a class="code hl_enumeration" href="namespace_mu_p_d_f_core.html#ae9af8906676327d741663484e282c9a9">PasswordTypes</a></div>
<div class="line"><a id="l00335" name="l00335"></a><span class="lineno">  335</span>    {<span class="comment"></span></div>
<div class="line"><a id="l00336" name="l00336"></a><span class="lineno">  336</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00337" name="l00337"></a><span class="lineno">  337</span><span class="comment">        /// No password.</span></div>
<div class="line"><a id="l00338" name="l00338"></a><span class="lineno">  338</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00339" name="l00339"></a><span class="lineno">  339</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#abff8cbdf3a6dcdbcd7b52a8696ac2595a6adf97f83acf6453d4a6a4b1070f3754">None</a> = 0,</div>
<div class="line"><a id="l00340" name="l00340"></a><span class="lineno">  340</span><span class="comment"></span> </div>
<div class="line"><a id="l00341" name="l00341"></a><span class="lineno">  341</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00342" name="l00342"></a><span class="lineno">  342</span><span class="comment">        /// The password corresponds to the user password.</span></div>
<div class="line"><a id="l00343" name="l00343"></a><span class="lineno">  343</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00344" name="l00344"></a><span class="lineno">  344</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#ae9af8906676327d741663484e282c9a9a8f9bfe9d1345237cb3b2b205864da075">User</a> = 1,</div>
<div class="line"><a id="l00345" name="l00345"></a><span class="lineno">  345</span><span class="comment"></span> </div>
<div class="line"><a id="l00346" name="l00346"></a><span class="lineno">  346</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00347" name="l00347"></a><span class="lineno">  347</span><span class="comment">        /// The password corresponds to the owner password.</span></div>
<div class="line"><a id="l00348" name="l00348"></a><span class="lineno">  348</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00349" name="l00349"></a><span class="lineno">  349</span><span class="comment"></span>        <a class="code hl_enumvalue" href="namespace_mu_p_d_f_core.html#ae9af8906676327d741663484e282c9a9ab6f4a2ec6356bbd56d49f2096bf9d3d3">Owner</a> = 2</div>
<div class="line"><a id="l00350" name="l00350"></a><span class="lineno">  350</span>    }</div>
<div class="line"><a id="l00351" name="l00351"></a><span class="lineno">  351</span><span class="comment"></span> </div>
<div class="line"><a id="l00352" name="l00352"></a><span class="lineno">  352</span><span class="comment">    /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00353" name="l00353"></a><span class="lineno">  353</span><span class="comment">    /// A struct to hold information about the current rendering process and to abort rendering as needed.</span></div>
<div class="line"><a id="l00354" name="l00354"></a><span class="lineno">  354</span><span class="comment">    /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00355" name="l00355"></a><span class="lineno">  355</span><span class="comment"></span>    [StructLayout(LayoutKind.Sequential)]</div>
<div class="line"><a id="l00356" name="l00356"></a><span class="lineno">  356</span>    <span class="keyword">internal</span> <span class="keyword">struct </span>Cookie</div>
<div class="line"><a id="l00357" name="l00357"></a><span class="lineno">  357</span>    {</div>
<div class="line"><a id="l00358" name="l00358"></a><span class="lineno">  358</span>        <span class="keyword">public</span> <span class="keywordtype">int</span> abort;</div>
<div class="line"><a id="l00359" name="l00359"></a><span class="lineno">  359</span>        <span class="keyword">public</span> <span class="keywordtype">int</span> progress;</div>
<div class="line"><a id="l00360" name="l00360"></a><span class="lineno">  360</span>        <span class="keyword">public</span> ulong progress_max;</div>
<div class="line"><a id="l00361" name="l00361"></a><span class="lineno">  361</span>        <span class="keyword">public</span> <span class="keywordtype">int</span> errors;</div>
<div class="line"><a id="l00362" name="l00362"></a><span class="lineno">  362</span>        <span class="keyword">public</span> <span class="keywordtype">int</span> incomplete;</div>
<div class="line"><a id="l00363" name="l00363"></a><span class="lineno">  363</span>    }</div>
<div class="line"><a id="l00364" name="l00364"></a><span class="lineno">  364</span><span class="comment"></span> </div>
<div class="line"><a id="l00365" name="l00365"></a><span class="lineno">  365</span><span class="comment">    /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00366" name="l00366"></a><span class="lineno">  366</span><span class="comment">    /// Holds a summary of the progress of the current rendering operation.</span></div>
<div class="line"><a id="l00367" name="l00367"></a><span class="lineno">  367</span><span class="comment">    /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00368" name="l00368"></a><span class="lineno"><a class="line" href="class_mu_p_d_f_core_1_1_render_progress.html">  368</a></span><span class="comment"></span>    <span class="keyword">public</span> <span class="keyword">class </span><a class="code hl_class" href="class_mu_p_d_f_core_1_1_render_progress.html">RenderProgress</a></div>
<div class="line"><a id="l00369" name="l00369"></a><span class="lineno">  369</span>    {<span class="comment"></span></div>
<div class="line"><a id="l00370" name="l00370"></a><span class="lineno">  370</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00371" name="l00371"></a><span class="lineno">  371</span><span class="comment">        /// Holds the progress of a single thread.</span></div>
<div class="line"><a id="l00372" name="l00372"></a><span class="lineno">  372</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00373" name="l00373"></a><span class="lineno"><a class="line" href="struct_mu_p_d_f_core_1_1_render_progress_1_1_thread_render_progress.html">  373</a></span><span class="comment"></span>        <span class="keyword">public</span> <span class="keyword">struct </span><a class="code hl_struct" href="struct_mu_p_d_f_core_1_1_render_progress_1_1_thread_render_progress.html">ThreadRenderProgress</a></div>
<div class="line"><a id="l00374" name="l00374"></a><span class="lineno">  374</span>        {<span class="comment"></span></div>
<div class="line"><a id="l00375" name="l00375"></a><span class="lineno">  375</span><span class="comment">            /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00376" name="l00376"></a><span class="lineno">  376</span><span class="comment">            /// The current progress.</span></div>
<div class="line"><a id="l00377" name="l00377"></a><span class="lineno">  377</span><span class="comment">            /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00378" name="l00378"></a><span class="lineno"><a class="line" href="struct_mu_p_d_f_core_1_1_render_progress_1_1_thread_render_progress.html#a99d8a959dd4b9a4d7ed2cbce64564c1c">  378</a></span><span class="comment"></span>            <span class="keyword">public</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="struct_mu_p_d_f_core_1_1_render_progress_1_1_thread_render_progress.html#a99d8a959dd4b9a4d7ed2cbce64564c1c">Progress</a>;</div>
<div class="line"><a id="l00379" name="l00379"></a><span class="lineno">  379</span><span class="comment"></span> </div>
<div class="line"><a id="l00380" name="l00380"></a><span class="lineno">  380</span><span class="comment">            /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00381" name="l00381"></a><span class="lineno">  381</span><span class="comment">            /// The maximum progress. If this is 0, this value could not be determined (yet).</span></div>
<div class="line"><a id="l00382" name="l00382"></a><span class="lineno">  382</span><span class="comment">            /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00383" name="l00383"></a><span class="lineno"><a class="line" href="struct_mu_p_d_f_core_1_1_render_progress_1_1_thread_render_progress.html#a9c38fa62f1a38b504e428d33b7e6bc50">  383</a></span><span class="comment"></span>            <span class="keyword">public</span> <span class="keywordtype">long</span> <a class="code hl_variable" href="struct_mu_p_d_f_core_1_1_render_progress_1_1_thread_render_progress.html#a9c38fa62f1a38b504e428d33b7e6bc50">MaxProgress</a>;</div>
<div class="line"><a id="l00384" name="l00384"></a><span class="lineno">  384</span> </div>
<div class="line"><a id="l00385" name="l00385"></a><span class="lineno">  385</span>            <span class="keyword">internal</span> <a class="code hl_struct" href="struct_mu_p_d_f_core_1_1_render_progress_1_1_thread_render_progress.html">ThreadRenderProgress</a>(<span class="keywordtype">int</span> progress, ulong maxProgress)</div>
<div class="line"><a id="l00386" name="l00386"></a><span class="lineno">  386</span>            {</div>
<div class="line"><a id="l00387" name="l00387"></a><span class="lineno">  387</span>                this.Progress = progress;</div>
<div class="line"><a id="l00388" name="l00388"></a><span class="lineno">  388</span>                this.MaxProgress = (long)maxProgress;</div>
<div class="line"><a id="l00389" name="l00389"></a><span class="lineno">  389</span>            }</div>
<div class="line"><a id="l00390" name="l00390"></a><span class="lineno">  390</span>        }</div>
<div class="line"><a id="l00391" name="l00391"></a><span class="lineno">  391</span><span class="comment"></span> </div>
<div class="line"><a id="l00392" name="l00392"></a><span class="lineno">  392</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00393" name="l00393"></a><span class="lineno">  393</span><span class="comment">        /// Contains the progress of all the threads used in rendering the document.</span></div>
<div class="line"><a id="l00394" name="l00394"></a><span class="lineno">  394</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00395" name="l00395"></a><span class="lineno"><a class="line" href="class_mu_p_d_f_core_1_1_render_progress.html#a5f65e7ff3637aa71ff177a42c348a5eb">  395</a></span><span class="comment"></span>        <span class="keyword">public</span> <a class="code hl_struct" href="struct_mu_p_d_f_core_1_1_render_progress_1_1_thread_render_progress.html">ThreadRenderProgress</a>[] <a class="code hl_property" href="class_mu_p_d_f_core_1_1_render_progress.html#a5f65e7ff3637aa71ff177a42c348a5eb">ThreadRenderProgresses</a> { <span class="keyword">get</span>; <span class="keyword">private</span> <span class="keyword">set</span>; }</div>
<div class="line"><a id="l00396" name="l00396"></a><span class="lineno">  396</span> </div>
<div class="line"><a id="l00397" name="l00397"></a><span class="lineno">  397</span>        <span class="keyword">internal</span> <a class="code hl_class" href="class_mu_p_d_f_core_1_1_render_progress.html">RenderProgress</a>(ThreadRenderProgress[] threadRenderProgresses)</div>
<div class="line"><a id="l00398" name="l00398"></a><span class="lineno">  398</span>        {</div>
<div class="line"><a id="l00399" name="l00399"></a><span class="lineno">  399</span>            <a class="code hl_property" href="class_mu_p_d_f_core_1_1_render_progress.html#a5f65e7ff3637aa71ff177a42c348a5eb">ThreadRenderProgresses</a> = threadRenderProgresses;</div>
<div class="line"><a id="l00400" name="l00400"></a><span class="lineno">  400</span>        }</div>
<div class="line"><a id="l00401" name="l00401"></a><span class="lineno">  401</span>    }</div>
<div class="line"><a id="l00402" name="l00402"></a><span class="lineno">  402</span><span class="comment"></span> </div>
<div class="line"><a id="l00403" name="l00403"></a><span class="lineno">  403</span><span class="comment">    /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00404" name="l00404"></a><span class="lineno">  404</span><span class="comment">    /// An &lt;see cref=&quot;IDisposable&quot;/&gt; wrapper around an &lt;see cref=&quot;IntPtr&quot;/&gt; that frees the allocated memory when it is disposed.</span></div>
<div class="line"><a id="l00405" name="l00405"></a><span class="lineno">  405</span><span class="comment">    /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00406" name="l00406"></a><span class="lineno"><a class="line" href="class_mu_p_d_f_core_1_1_disposable_int_ptr.html">  406</a></span><span class="comment"></span>    <span class="keyword">public</span> <span class="keyword">class </span><a class="code hl_class" href="class_mu_p_d_f_core_1_1_disposable_int_ptr.html">DisposableIntPtr</a> : IDisposable</div>
<div class="line"><a id="l00407" name="l00407"></a><span class="lineno">  407</span>    {<span class="comment"></span></div>
<div class="line"><a id="l00408" name="l00408"></a><span class="lineno">  408</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00409" name="l00409"></a><span class="lineno">  409</span><span class="comment">        /// The pointer to the unmanaged memory.</span></div>
<div class="line"><a id="l00410" name="l00410"></a><span class="lineno">  410</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00411" name="l00411"></a><span class="lineno">  411</span><span class="comment"></span>        <span class="keyword">private</span> readonly IntPtr InternalPointer;</div>
<div class="line"><a id="l00412" name="l00412"></a><span class="lineno">  412</span><span class="comment"></span> </div>
<div class="line"><a id="l00413" name="l00413"></a><span class="lineno">  413</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00414" name="l00414"></a><span class="lineno">  414</span><span class="comment">        /// The number of bytes that have been allocated, for adding memory pressure.</span></div>
<div class="line"><a id="l00415" name="l00415"></a><span class="lineno">  415</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00416" name="l00416"></a><span class="lineno">  416</span><span class="comment"></span>        <span class="keyword">private</span> readonly <span class="keywordtype">long</span> BytesAllocated = -1;</div>
<div class="line"><a id="l00417" name="l00417"></a><span class="lineno">  417</span><span class="comment"></span> </div>
<div class="line"><a id="l00418" name="l00418"></a><span class="lineno">  418</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00419" name="l00419"></a><span class="lineno">  419</span><span class="comment">        /// Create a new DisposableIntPtr.</span></div>
<div class="line"><a id="l00420" name="l00420"></a><span class="lineno">  420</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00421" name="l00421"></a><span class="lineno">  421</span><span class="comment">        /// &lt;param name=&quot;pointer&quot;&gt;The pointer that should be freed upon disposing of this object.&lt;/param&gt;</span></div>
<div class="line"><a id="l00422" name="l00422"></a><span class="lineno"><a class="line" href="class_mu_p_d_f_core_1_1_disposable_int_ptr.html#ab9829c61cf710e0ad619ea712eacd2d8">  422</a></span><span class="comment"></span>        <span class="keyword">public</span> <a class="code hl_function" href="class_mu_p_d_f_core_1_1_disposable_int_ptr.html#ab9829c61cf710e0ad619ea712eacd2d8">DisposableIntPtr</a>(IntPtr pointer)</div>
<div class="line"><a id="l00423" name="l00423"></a><span class="lineno">  423</span>        {</div>
<div class="line"><a id="l00424" name="l00424"></a><span class="lineno">  424</span>            this.InternalPointer = pointer;</div>
<div class="line"><a id="l00425" name="l00425"></a><span class="lineno">  425</span>        }</div>
<div class="line"><a id="l00426" name="l00426"></a><span class="lineno">  426</span><span class="comment"></span> </div>
<div class="line"><a id="l00427" name="l00427"></a><span class="lineno">  427</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00428" name="l00428"></a><span class="lineno">  428</span><span class="comment">        /// Create a new DisposableIntPtr, adding memory pressure to the GC to account for the allocation of unmanaged memory.</span></div>
<div class="line"><a id="l00429" name="l00429"></a><span class="lineno">  429</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00430" name="l00430"></a><span class="lineno">  430</span><span class="comment">        /// &lt;param name=&quot;pointer&quot;&gt;The pointer that should be freed upon disposing of this object.&lt;/param&gt;</span></div>
<div class="line"><a id="l00431" name="l00431"></a><span class="lineno">  431</span><span class="comment">        /// &lt;param name=&quot;bytesAllocated&quot;&gt;The number of bytes that have been allocated, for adding memory pressure.&lt;/param&gt;</span></div>
<div class="line"><a id="l00432" name="l00432"></a><span class="lineno"><a class="line" href="class_mu_p_d_f_core_1_1_disposable_int_ptr.html#a2b38ee4942d24d3282edd15268013887">  432</a></span><span class="comment"></span>        <span class="keyword">public</span> <a class="code hl_function" href="class_mu_p_d_f_core_1_1_disposable_int_ptr.html#a2b38ee4942d24d3282edd15268013887">DisposableIntPtr</a>(IntPtr pointer, <span class="keywordtype">long</span> bytesAllocated)</div>
<div class="line"><a id="l00433" name="l00433"></a><span class="lineno">  433</span>        {</div>
<div class="line"><a id="l00434" name="l00434"></a><span class="lineno">  434</span>            this.InternalPointer = pointer;</div>
<div class="line"><a id="l00435" name="l00435"></a><span class="lineno">  435</span>            this.BytesAllocated = bytesAllocated;</div>
<div class="line"><a id="l00436" name="l00436"></a><span class="lineno">  436</span> </div>
<div class="line"><a id="l00437" name="l00437"></a><span class="lineno">  437</span>            <span class="keywordflow">if</span> (BytesAllocated &gt; 0)</div>
<div class="line"><a id="l00438" name="l00438"></a><span class="lineno">  438</span>            {</div>
<div class="line"><a id="l00439" name="l00439"></a><span class="lineno">  439</span>                GC.AddMemoryPressure(bytesAllocated);</div>
<div class="line"><a id="l00440" name="l00440"></a><span class="lineno">  440</span>            }</div>
<div class="line"><a id="l00441" name="l00441"></a><span class="lineno">  441</span>        }</div>
<div class="line"><a id="l00442" name="l00442"></a><span class="lineno">  442</span> </div>
<div class="line"><a id="l00443" name="l00443"></a><span class="lineno">  443</span>        <span class="keyword">private</span> <span class="keywordtype">bool</span> disposedValue;</div>
<div class="line"><a id="l00444" name="l00444"></a><span class="lineno">  444</span><span class="comment"></span> </div>
<div class="line"><a id="l00445" name="l00445"></a><span class="lineno">  445</span><span class="comment">        ///&lt;inheritdoc/&gt;</span></div>
<div class="line"><a id="l00446" name="l00446"></a><span class="lineno">  446</span><span class="comment"></span>        <span class="keyword">protected</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> Dispose(<span class="keywordtype">bool</span> disposing)</div>
<div class="line"><a id="l00447" name="l00447"></a><span class="lineno">  447</span>        {</div>
<div class="line"><a id="l00448" name="l00448"></a><span class="lineno">  448</span>            <span class="keywordflow">if</span> (!disposedValue)</div>
<div class="line"><a id="l00449" name="l00449"></a><span class="lineno">  449</span>            {</div>
<div class="line"><a id="l00450" name="l00450"></a><span class="lineno">  450</span>                Marshal.FreeHGlobal(InternalPointer);</div>
<div class="line"><a id="l00451" name="l00451"></a><span class="lineno">  451</span> </div>
<div class="line"><a id="l00452" name="l00452"></a><span class="lineno">  452</span>                <span class="keywordflow">if</span> (BytesAllocated &gt; 0)</div>
<div class="line"><a id="l00453" name="l00453"></a><span class="lineno">  453</span>                {</div>
<div class="line"><a id="l00454" name="l00454"></a><span class="lineno">  454</span>                    GC.RemoveMemoryPressure(BytesAllocated);</div>
<div class="line"><a id="l00455" name="l00455"></a><span class="lineno">  455</span>                }</div>
<div class="line"><a id="l00456" name="l00456"></a><span class="lineno">  456</span> </div>
<div class="line"><a id="l00457" name="l00457"></a><span class="lineno">  457</span>                disposedValue = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00458" name="l00458"></a><span class="lineno">  458</span>            }</div>
<div class="line"><a id="l00459" name="l00459"></a><span class="lineno">  459</span>        }</div>
<div class="line"><a id="l00460" name="l00460"></a><span class="lineno">  460</span><span class="comment"></span> </div>
<div class="line"><a id="l00461" name="l00461"></a><span class="lineno">  461</span><span class="comment">        ///&lt;inheritdoc/&gt;</span></div>
<div class="line"><a id="l00462" name="l00462"></a><span class="lineno">  462</span><span class="comment"></span>        ~DisposableIntPtr()</div>
<div class="line"><a id="l00463" name="l00463"></a><span class="lineno">  463</span>        {</div>
<div class="line"><a id="l00464" name="l00464"></a><span class="lineno">  464</span>            Dispose(disposing: <span class="keyword">false</span>);</div>
<div class="line"><a id="l00465" name="l00465"></a><span class="lineno">  465</span>        }</div>
<div class="line"><a id="l00466" name="l00466"></a><span class="lineno">  466</span><span class="comment"></span> </div>
<div class="line"><a id="l00467" name="l00467"></a><span class="lineno">  467</span><span class="comment">        ///&lt;inheritdoc/&gt;</span></div>
<div class="line"><a id="l00468" name="l00468"></a><span class="lineno">  468</span><span class="comment"></span>        <span class="keyword">public</span> <span class="keywordtype">void</span> Dispose()</div>
<div class="line"><a id="l00469" name="l00469"></a><span class="lineno">  469</span>        {</div>
<div class="line"><a id="l00470" name="l00470"></a><span class="lineno">  470</span>            Dispose(disposing: <span class="keyword">true</span>);</div>
<div class="line"><a id="l00471" name="l00471"></a><span class="lineno">  471</span>            GC.SuppressFinalize(<span class="keyword">this</span>);</div>
<div class="line"><a id="l00472" name="l00472"></a><span class="lineno">  472</span>        }</div>
<div class="line"><a id="l00473" name="l00473"></a><span class="lineno">  473</span>    }</div>
<div class="line"><a id="l00474" name="l00474"></a><span class="lineno">  474</span><span class="comment"></span> </div>
<div class="line"><a id="l00475" name="l00475"></a><span class="lineno">  475</span><span class="comment">    /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00476" name="l00476"></a><span class="lineno">  476</span><span class="comment">    /// The exception that is thrown when a MuPDF operation fails.</span></div>
<div class="line"><a id="l00477" name="l00477"></a><span class="lineno">  477</span><span class="comment">    /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00478" name="l00478"></a><span class="lineno"><a class="line" href="class_mu_p_d_f_core_1_1_mu_p_d_f_exception.html">  478</a></span><span class="comment"></span>    <span class="keyword">public</span> <span class="keyword">class </span><a class="code hl_class" href="class_mu_p_d_f_core_1_1_mu_p_d_f_exception.html">MuPDFException</a> : Exception</div>
<div class="line"><a id="l00479" name="l00479"></a><span class="lineno">  479</span>    {<span class="comment"></span></div>
<div class="line"><a id="l00480" name="l00480"></a><span class="lineno">  480</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00481" name="l00481"></a><span class="lineno">  481</span><span class="comment">        /// The &lt;see cref=&quot;ExitCodes&quot;/&gt; returned by the native function.</span></div>
<div class="line"><a id="l00482" name="l00482"></a><span class="lineno">  482</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00483" name="l00483"></a><span class="lineno"><a class="line" href="class_mu_p_d_f_core_1_1_mu_p_d_f_exception.html#afcff57d78e7e1ebdb246c7cda6488054">  483</a></span><span class="comment"></span>        <span class="keyword">public</span> readonly <a class="code hl_enumeration" href="namespace_mu_p_d_f_core.html#aa6919d62a772f0334777d47f9c2d6c59">ExitCodes</a> <a class="code hl_variable" href="class_mu_p_d_f_core_1_1_mu_p_d_f_exception.html#afcff57d78e7e1ebdb246c7cda6488054">ErrorCode</a>;</div>
<div class="line"><a id="l00484" name="l00484"></a><span class="lineno">  484</span> </div>
<div class="line"><a id="l00485" name="l00485"></a><span class="lineno">  485</span>        <span class="keyword">internal</span> <a class="code hl_class" href="class_mu_p_d_f_core_1_1_mu_p_d_f_exception.html">MuPDFException</a>(<span class="keywordtype">string</span> message, <a class="code hl_enumeration" href="namespace_mu_p_d_f_core.html#aa6919d62a772f0334777d47f9c2d6c59">ExitCodes</a> errorCode) : base(message)</div>
<div class="line"><a id="l00486" name="l00486"></a><span class="lineno">  486</span>        {</div>
<div class="line"><a id="l00487" name="l00487"></a><span class="lineno">  487</span>            this.ErrorCode = errorCode;</div>
<div class="line"><a id="l00488" name="l00488"></a><span class="lineno">  488</span>        }</div>
<div class="line"><a id="l00489" name="l00489"></a><span class="lineno">  489</span>    }</div>
<div class="line"><a id="l00490" name="l00490"></a><span class="lineno">  490</span><span class="comment"></span> </div>
<div class="line"><a id="l00491" name="l00491"></a><span class="lineno">  491</span><span class="comment">    /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00492" name="l00492"></a><span class="lineno">  492</span><span class="comment">    /// The exception that is thrown when an attempt is made to render an encrypted document without supplying the required password.</span></div>
<div class="line"><a id="l00493" name="l00493"></a><span class="lineno">  493</span><span class="comment">    /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00494" name="l00494"></a><span class="lineno"><a class="line" href="class_mu_p_d_f_core_1_1_document_locked_exception.html">  494</a></span><span class="comment"></span>    <span class="keyword">public</span> <span class="keyword">class </span><a class="code hl_class" href="class_mu_p_d_f_core_1_1_document_locked_exception.html">DocumentLockedException</a> : Exception</div>
<div class="line"><a id="l00495" name="l00495"></a><span class="lineno">  495</span>    {</div>
<div class="line"><a id="l00496" name="l00496"></a><span class="lineno">  496</span>        <span class="keyword">internal</span> <a class="code hl_class" href="class_mu_p_d_f_core_1_1_document_locked_exception.html">DocumentLockedException</a>(<span class="keywordtype">string</span> message) : base(message) { }</div>
<div class="line"><a id="l00497" name="l00497"></a><span class="lineno">  497</span>    }</div>
<div class="line"><a id="l00498" name="l00498"></a><span class="lineno">  498</span><span class="comment"></span> </div>
<div class="line"><a id="l00499" name="l00499"></a><span class="lineno">  499</span><span class="comment">    /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00500" name="l00500"></a><span class="lineno">  500</span><span class="comment">    /// A class to simplify passing a string to the MuPDF C library with the correct encoding.</span></div>
<div class="line"><a id="l00501" name="l00501"></a><span class="lineno">  501</span><span class="comment">    /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00502" name="l00502"></a><span class="lineno">  502</span><span class="comment"></span>    <span class="keyword">internal</span> <span class="keyword">class </span>UTF8EncodedString : IDisposable</div>
<div class="line"><a id="l00503" name="l00503"></a><span class="lineno">  503</span>    {</div>
<div class="line"><a id="l00504" name="l00504"></a><span class="lineno">  504</span>        <span class="keyword">private</span> <span class="keywordtype">bool</span> disposedValue;</div>
<div class="line"><a id="l00505" name="l00505"></a><span class="lineno">  505</span><span class="comment"></span> </div>
<div class="line"><a id="l00506" name="l00506"></a><span class="lineno">  506</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00507" name="l00507"></a><span class="lineno">  507</span><span class="comment">        /// The address of the bytes encoding the string in unmanaged memory.</span></div>
<div class="line"><a id="l00508" name="l00508"></a><span class="lineno">  508</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00509" name="l00509"></a><span class="lineno">  509</span><span class="comment"></span>        <span class="keyword">public</span> IntPtr Address { <span class="keyword">get</span>; }</div>
<div class="line"><a id="l00510" name="l00510"></a><span class="lineno">  510</span><span class="comment"></span> </div>
<div class="line"><a id="l00511" name="l00511"></a><span class="lineno">  511</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00512" name="l00512"></a><span class="lineno">  512</span><span class="comment">        /// Create a null-terminated, UTF-8 encoded string in unmanaged memory.</span></div>
<div class="line"><a id="l00513" name="l00513"></a><span class="lineno">  513</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00514" name="l00514"></a><span class="lineno">  514</span><span class="comment">        /// &lt;param name=&quot;text&quot;&gt;&lt;/param&gt;</span></div>
<div class="line"><a id="l00515" name="l00515"></a><span class="lineno">  515</span><span class="comment"></span>        <span class="keyword">public</span> UTF8EncodedString(<span class="keywordtype">string</span> text)</div>
<div class="line"><a id="l00516" name="l00516"></a><span class="lineno">  516</span>        {</div>
<div class="line"><a id="l00517" name="l00517"></a><span class="lineno">  517</span>            <span class="keywordtype">byte</span>[] data = System.Text.Encoding.UTF8.GetBytes(text);</div>
<div class="line"><a id="l00518" name="l00518"></a><span class="lineno">  518</span> </div>
<div class="line"><a id="l00519" name="l00519"></a><span class="lineno">  519</span>            IntPtr dataHolder = Marshal.AllocHGlobal(data.Length + 1);</div>
<div class="line"><a id="l00520" name="l00520"></a><span class="lineno">  520</span>            Marshal.Copy(data, 0, dataHolder, data.Length);</div>
<div class="line"><a id="l00521" name="l00521"></a><span class="lineno">  521</span>            Marshal.WriteByte(dataHolder, data.Length, 0);</div>
<div class="line"><a id="l00522" name="l00522"></a><span class="lineno">  522</span> </div>
<div class="line"><a id="l00523" name="l00523"></a><span class="lineno">  523</span>            this.Address = dataHolder;</div>
<div class="line"><a id="l00524" name="l00524"></a><span class="lineno">  524</span>        }</div>
<div class="line"><a id="l00525" name="l00525"></a><span class="lineno">  525</span> </div>
<div class="line"><a id="l00526" name="l00526"></a><span class="lineno">  526</span>        <span class="keyword">protected</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> Dispose(<span class="keywordtype">bool</span> disposing)</div>
<div class="line"><a id="l00527" name="l00527"></a><span class="lineno">  527</span>        {</div>
<div class="line"><a id="l00528" name="l00528"></a><span class="lineno">  528</span>            <span class="keywordflow">if</span> (!disposedValue)</div>
<div class="line"><a id="l00529" name="l00529"></a><span class="lineno">  529</span>            {</div>
<div class="line"><a id="l00530" name="l00530"></a><span class="lineno">  530</span>                Marshal.FreeHGlobal(Address);</div>
<div class="line"><a id="l00531" name="l00531"></a><span class="lineno">  531</span>                disposedValue = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00532" name="l00532"></a><span class="lineno">  532</span>            }</div>
<div class="line"><a id="l00533" name="l00533"></a><span class="lineno">  533</span>        }</div>
<div class="line"><a id="l00534" name="l00534"></a><span class="lineno">  534</span> </div>
<div class="line"><a id="l00535" name="l00535"></a><span class="lineno">  535</span>        ~UTF8EncodedString()</div>
<div class="line"><a id="l00536" name="l00536"></a><span class="lineno">  536</span>        {</div>
<div class="line"><a id="l00537" name="l00537"></a><span class="lineno">  537</span>            Dispose(disposing: <span class="keyword">false</span>);</div>
<div class="line"><a id="l00538" name="l00538"></a><span class="lineno">  538</span>        }</div>
<div class="line"><a id="l00539" name="l00539"></a><span class="lineno">  539</span> </div>
<div class="line"><a id="l00540" name="l00540"></a><span class="lineno">  540</span>        <span class="keyword">public</span> <span class="keywordtype">void</span> Dispose()</div>
<div class="line"><a id="l00541" name="l00541"></a><span class="lineno">  541</span>        {</div>
<div class="line"><a id="l00542" name="l00542"></a><span class="lineno">  542</span>            Dispose(disposing: <span class="keyword">true</span>);</div>
<div class="line"><a id="l00543" name="l00543"></a><span class="lineno">  543</span>            GC.SuppressFinalize(<span class="keyword">this</span>);</div>
<div class="line"><a id="l00544" name="l00544"></a><span class="lineno">  544</span>        }</div>
<div class="line"><a id="l00545" name="l00545"></a><span class="lineno">  545</span>    }</div>
<div class="line"><a id="l00546" name="l00546"></a><span class="lineno">  546</span><span class="comment"></span> </div>
<div class="line"><a id="l00547" name="l00547"></a><span class="lineno">  547</span><span class="comment">    /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00548" name="l00548"></a><span class="lineno">  548</span><span class="comment">    /// EventArgs for the &lt;see cref=&quot;MuPDF.StandardOutputMessage&quot;/&gt; and &lt;see cref=&quot;MuPDF.StandardErrorMessage&quot;/&gt; events.</span></div>
<div class="line"><a id="l00549" name="l00549"></a><span class="lineno">  549</span><span class="comment">    /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00550" name="l00550"></a><span class="lineno"><a class="line" href="class_mu_p_d_f_core_1_1_message_event_args.html">  550</a></span><span class="comment"></span>    <span class="keyword">public</span> <span class="keyword">class </span><a class="code hl_class" href="class_mu_p_d_f_core_1_1_message_event_args.html">MessageEventArgs</a> : EventArgs</div>
<div class="line"><a id="l00551" name="l00551"></a><span class="lineno">  551</span>    {<span class="comment"></span></div>
<div class="line"><a id="l00552" name="l00552"></a><span class="lineno">  552</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00553" name="l00553"></a><span class="lineno">  553</span><span class="comment">        /// The message that has been logged.</span></div>
<div class="line"><a id="l00554" name="l00554"></a><span class="lineno">  554</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00555" name="l00555"></a><span class="lineno"><a class="line" href="class_mu_p_d_f_core_1_1_message_event_args.html#a2a4d28e399d85be595c93071e15c4db8">  555</a></span><span class="comment"></span>        <span class="keyword">public</span> <span class="keywordtype">string</span> <a class="code hl_property" href="class_mu_p_d_f_core_1_1_message_event_args.html#a2a4d28e399d85be595c93071e15c4db8">Message</a> { <span class="keyword">get</span>; }</div>
<div class="line"><a id="l00556" name="l00556"></a><span class="lineno">  556</span><span class="comment"></span> </div>
<div class="line"><a id="l00557" name="l00557"></a><span class="lineno">  557</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00558" name="l00558"></a><span class="lineno">  558</span><span class="comment">        /// Create a new &lt;see cref=&quot;MessageEventArgs&quot;/&gt; instance.</span></div>
<div class="line"><a id="l00559" name="l00559"></a><span class="lineno">  559</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00560" name="l00560"></a><span class="lineno">  560</span><span class="comment">        /// &lt;param name=&quot;message&quot;&gt;The message that has been logged.&lt;/param&gt;</span></div>
<div class="line"><a id="l00561" name="l00561"></a><span class="lineno"><a class="line" href="class_mu_p_d_f_core_1_1_message_event_args.html#afe688c008fc2c4fe201ce806102acc34">  561</a></span><span class="comment"></span>        <span class="keyword">public</span> <a class="code hl_function" href="class_mu_p_d_f_core_1_1_message_event_args.html#afe688c008fc2c4fe201ce806102acc34">MessageEventArgs</a>(<span class="keywordtype">string</span> message)</div>
<div class="line"><a id="l00562" name="l00562"></a><span class="lineno">  562</span>        {</div>
<div class="line"><a id="l00563" name="l00563"></a><span class="lineno">  563</span>            this.Message = message;</div>
<div class="line"><a id="l00564" name="l00564"></a><span class="lineno">  564</span>        }</div>
<div class="line"><a id="l00565" name="l00565"></a><span class="lineno">  565</span>    }</div>
<div class="line"><a id="l00566" name="l00566"></a><span class="lineno">  566</span><span class="comment"></span> </div>
<div class="line"><a id="l00567" name="l00567"></a><span class="lineno">  567</span><span class="comment">    /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00568" name="l00568"></a><span class="lineno">  568</span><span class="comment">    /// Contains static methods to perform setup operations.</span></div>
<div class="line"><a id="l00569" name="l00569"></a><span class="lineno">  569</span><span class="comment">    /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00570" name="l00570"></a><span class="lineno"><a class="line" href="class_mu_p_d_f_core_1_1_mu_p_d_f.html">  570</a></span><span class="comment"></span>    <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">class </span><a class="code hl_class" href="class_mu_p_d_f_core_1_1_mu_p_d_f.html">MuPDF</a></div>
<div class="line"><a id="l00571" name="l00571"></a><span class="lineno">  571</span>    {</div>
<div class="line"><a id="l00572" name="l00572"></a><span class="lineno">  572</span>        <span class="keyword">private</span> <span class="keyword">static</span> <span class="keywordtype">int</span> StdOutFD = -1;</div>
<div class="line"><a id="l00573" name="l00573"></a><span class="lineno">  573</span>        <span class="keyword">private</span> <span class="keyword">static</span> <span class="keywordtype">int</span> StdErrFD = -1;</div>
<div class="line"><a id="l00574" name="l00574"></a><span class="lineno">  574</span> </div>
<div class="line"><a id="l00575" name="l00575"></a><span class="lineno">  575</span>        <span class="keyword">private</span> <span class="keyword">static</span> TextWriter ConsoleOut;</div>
<div class="line"><a id="l00576" name="l00576"></a><span class="lineno">  576</span>        <span class="keyword">private</span> <span class="keyword">static</span> TextWriter ConsoleErr;</div>
<div class="line"><a id="l00577" name="l00577"></a><span class="lineno">  577</span> </div>
<div class="line"><a id="l00578" name="l00578"></a><span class="lineno">  578</span>        <span class="keyword">private</span> <span class="keyword">static</span> ConsoleColor DefaultForeground;</div>
<div class="line"><a id="l00579" name="l00579"></a><span class="lineno">  579</span>        <span class="keyword">private</span> <span class="keyword">static</span> ConsoleColor DefaultBackground;</div>
<div class="line"><a id="l00580" name="l00580"></a><span class="lineno">  580</span> </div>
<div class="line"><a id="l00581" name="l00581"></a><span class="lineno">  581</span>        <span class="keyword">private</span> <span class="keyword">static</span> <span class="keywordtype">string</span> PipeName;</div>
<div class="line"><a id="l00582" name="l00582"></a><span class="lineno">  582</span>        <span class="keyword">private</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> CleanupRegistered = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00583" name="l00583"></a><span class="lineno">  583</span>        <span class="keyword">private</span> <span class="keyword">static</span> <span class="keywordtype">object</span> CleanupLock = <span class="keyword">new</span> object();</div>
<div class="line"><a id="l00584" name="l00584"></a><span class="lineno">  584</span><span class="comment"></span> </div>
<div class="line"><a id="l00585" name="l00585"></a><span class="lineno">  585</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00586" name="l00586"></a><span class="lineno">  586</span><span class="comment">        /// This event is invoked when &lt;see cref=&quot;RedirectOutput&quot;/&gt; has been called and the native MuPDF library writes to the standard output stream.</span></div>
<div class="line"><a id="l00587" name="l00587"></a><span class="lineno">  587</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00588" name="l00588"></a><span class="lineno"><a class="line" href="class_mu_p_d_f_core_1_1_mu_p_d_f.html#a74dfefba7aaea3ab4406dcde1ec6849e">  588</a></span><span class="comment"></span>        <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">event</span> EventHandler&lt;MessageEventArgs&gt; <a class="code hl_event" href="class_mu_p_d_f_core_1_1_mu_p_d_f.html#a74dfefba7aaea3ab4406dcde1ec6849e">StandardOutputMessage</a>;</div>
<div class="line"><a id="l00589" name="l00589"></a><span class="lineno">  589</span><span class="comment"></span> </div>
<div class="line"><a id="l00590" name="l00590"></a><span class="lineno">  590</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00591" name="l00591"></a><span class="lineno">  591</span><span class="comment">        /// This event is invoked when &lt;see cref=&quot;RedirectOutput&quot;/&gt; has been called and the native MuPDF library writes to the standard error stream.</span></div>
<div class="line"><a id="l00592" name="l00592"></a><span class="lineno">  592</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00593" name="l00593"></a><span class="lineno"><a class="line" href="class_mu_p_d_f_core_1_1_mu_p_d_f.html#ae0032d669163ae8d1ae6111f400a5047">  593</a></span><span class="comment"></span>        <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">event</span> EventHandler&lt;MessageEventArgs&gt; <a class="code hl_event" href="class_mu_p_d_f_core_1_1_mu_p_d_f.html#ae0032d669163ae8d1ae6111f400a5047">StandardErrorMessage</a>;</div>
<div class="line"><a id="l00594" name="l00594"></a><span class="lineno">  594</span><span class="comment"></span> </div>
<div class="line"><a id="l00595" name="l00595"></a><span class="lineno">  595</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00596" name="l00596"></a><span class="lineno">  596</span><span class="comment">        /// Redirects output messages from the native MuPDF library to the &lt;see cref=&quot;StandardOutputMessage&quot;/&gt; and &lt;see cref=&quot;StandardErrorMessage&quot;/&gt; events. Note that this has side-effects.</span></div>
<div class="line"><a id="l00597" name="l00597"></a><span class="lineno">  597</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00598" name="l00598"></a><span class="lineno">  598</span><span class="comment">        /// &lt;returns&gt;A &lt;see cref=&quot;Task&quot;/&gt; that finishes when the output streams have been redirected.&lt;/returns&gt;</span></div>
<div class="line"><a id="l00599" name="l00599"></a><span class="lineno"><a class="line" href="class_mu_p_d_f_core_1_1_mu_p_d_f.html#a4906a454ab32972d5c2bcf3d6213bac8">  599</a></span><span class="comment"></span>        <span class="keyword">public</span> <span class="keyword">static</span> async Task <a class="code hl_function" href="class_mu_p_d_f_core_1_1_mu_p_d_f.html#a4906a454ab32972d5c2bcf3d6213bac8">RedirectOutput</a>()</div>
<div class="line"><a id="l00600" name="l00600"></a><span class="lineno">  600</span>        {</div>
<div class="line"><a id="l00601" name="l00601"></a><span class="lineno">  601</span>            <span class="keywordflow">if</span> (System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform(System.Runtime.InteropServices.OSPlatform.Windows))</div>
<div class="line"><a id="l00602" name="l00602"></a><span class="lineno">  602</span>            {</div>
<div class="line"><a id="l00603" name="l00603"></a><span class="lineno">  603</span>                await RedirectOutputWindows();</div>
<div class="line"><a id="l00604" name="l00604"></a><span class="lineno">  604</span>            }</div>
<div class="line"><a id="l00605" name="l00605"></a><span class="lineno">  605</span>            <span class="keywordflow">else</span></div>
<div class="line"><a id="l00606" name="l00606"></a><span class="lineno">  606</span>            {</div>
<div class="line"><a id="l00607" name="l00607"></a><span class="lineno">  607</span>                await RedirectOutputUnix();</div>
<div class="line"><a id="l00608" name="l00608"></a><span class="lineno">  608</span>            }</div>
<div class="line"><a id="l00609" name="l00609"></a><span class="lineno">  609</span> </div>
<div class="line"><a id="l00610" name="l00610"></a><span class="lineno">  610</span>            <span class="keywordflow">if</span> (!CleanupRegistered)</div>
<div class="line"><a id="l00611" name="l00611"></a><span class="lineno">  611</span>            {</div>
<div class="line"><a id="l00612" name="l00612"></a><span class="lineno">  612</span>                AppDomain.CurrentDomain.ProcessExit += (s, e) =&gt;</div>
<div class="line"><a id="l00613" name="l00613"></a><span class="lineno">  613</span>                {</div>
<div class="line"><a id="l00614" name="l00614"></a><span class="lineno">  614</span>                    <a class="code hl_function" href="class_mu_p_d_f_core_1_1_mu_p_d_f.html#af990305716566eb39d123c0d3a857396">ResetOutput</a>();</div>
<div class="line"><a id="l00615" name="l00615"></a><span class="lineno">  615</span>                };</div>
<div class="line"><a id="l00616" name="l00616"></a><span class="lineno">  616</span>            }</div>
<div class="line"><a id="l00617" name="l00617"></a><span class="lineno">  617</span>        }</div>
<div class="line"><a id="l00618" name="l00618"></a><span class="lineno">  618</span> </div>
<div class="line"><a id="l00619" name="l00619"></a><span class="lineno">  619</span>        <span class="keyword">const</span> <span class="keywordtype">int</span> UnixMaxPipeLength = 107;</div>
<div class="line"><a id="l00620" name="l00620"></a><span class="lineno">  620</span> </div>
<div class="line"><a id="l00621" name="l00621"></a><span class="lineno">  621</span>        <span class="keyword">private</span> <span class="keyword">static</span> async Task RedirectOutputUnix()</div>
<div class="line"><a id="l00622" name="l00622"></a><span class="lineno">  622</span>        {</div>
<div class="line"><a id="l00623" name="l00623"></a><span class="lineno">  623</span>            <span class="keywordflow">if</span> (StdOutFD &lt; 0 &amp;&amp; StdErrFD &lt; 0)</div>
<div class="line"><a id="l00624" name="l00624"></a><span class="lineno">  624</span>            {</div>
<div class="line"><a id="l00625" name="l00625"></a><span class="lineno">  625</span>                <span class="keywordtype">string</span> tempPath = Path.GetTempPath();</div>
<div class="line"><a id="l00626" name="l00626"></a><span class="lineno">  626</span> </div>
<div class="line"><a id="l00627" name="l00627"></a><span class="lineno">  627</span>                <span class="keywordtype">string</span> pipeName = <span class="stringliteral">&quot;MuPDFCore-&quot;</span> + Guid.NewGuid().ToString();</div>
<div class="line"><a id="l00628" name="l00628"></a><span class="lineno">  628</span> </div>
<div class="line"><a id="l00629" name="l00629"></a><span class="lineno">  629</span>                pipeName = pipeName.Substring(0, Math.Min(pipeName.Length, UnixMaxPipeLength - tempPath.Length - 4));</div>
<div class="line"><a id="l00630" name="l00630"></a><span class="lineno">  630</span>                pipeName = Path.Combine(tempPath, pipeName);</div>
<div class="line"><a id="l00631" name="l00631"></a><span class="lineno">  631</span> </div>
<div class="line"><a id="l00632" name="l00632"></a><span class="lineno">  632</span>                PipeName = pipeName;</div>
<div class="line"><a id="l00633" name="l00633"></a><span class="lineno">  633</span> </div>
<div class="line"><a id="l00634" name="l00634"></a><span class="lineno">  634</span>                Task redirectOutputTask = System.Threading.Tasks.Task.Run(() =&gt;</div>
<div class="line"><a id="l00635" name="l00635"></a><span class="lineno">  635</span>                {</div>
<div class="line"><a id="l00636" name="l00636"></a><span class="lineno">  636</span>                    NativeMethods.RedirectOutput(out StdOutFD, out StdErrFD, pipeName + <span class="stringliteral">&quot;-out&quot;</span>, pipeName + <span class="stringliteral">&quot;-err&quot;</span>);</div>
<div class="line"><a id="l00637" name="l00637"></a><span class="lineno">  637</span>                });</div>
<div class="line"><a id="l00638" name="l00638"></a><span class="lineno">  638</span> </div>
<div class="line"><a id="l00639" name="l00639"></a><span class="lineno">  639</span>                <span class="comment">// Start stdout pipe (this is actually a socket)</span></div>
<div class="line"><a id="l00640" name="l00640"></a><span class="lineno">  640</span>                _ = Task.Run(() =&gt;</div>
<div class="line"><a id="l00641" name="l00641"></a><span class="lineno">  641</span>                {</div>
<div class="line"><a id="l00642" name="l00642"></a><span class="lineno">  642</span>                    <span class="keyword">using</span> (NamedPipeClientStream client = <span class="keyword">new</span> NamedPipeClientStream(pipeName + <span class="stringliteral">&quot;-out&quot;</span>))</div>
<div class="line"><a id="l00643" name="l00643"></a><span class="lineno">  643</span>                    {</div>
<div class="line"><a id="l00644" name="l00644"></a><span class="lineno">  644</span>                        <span class="keywordflow">while</span> (<span class="keyword">true</span>)</div>
<div class="line"><a id="l00645" name="l00645"></a><span class="lineno">  645</span>                        {</div>
<div class="line"><a id="l00646" name="l00646"></a><span class="lineno">  646</span>                            <span class="keywordflow">try</span></div>
<div class="line"><a id="l00647" name="l00647"></a><span class="lineno">  647</span>                            {</div>
<div class="line"><a id="l00648" name="l00648"></a><span class="lineno">  648</span>                                client.Connect(100);</div>
<div class="line"><a id="l00649" name="l00649"></a><span class="lineno">  649</span>                                <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00650" name="l00650"></a><span class="lineno">  650</span>                            }</div>
<div class="line"><a id="l00651" name="l00651"></a><span class="lineno">  651</span>                            <span class="keywordflow">catch</span> { }</div>
<div class="line"><a id="l00652" name="l00652"></a><span class="lineno">  652</span>                        }</div>
<div class="line"><a id="l00653" name="l00653"></a><span class="lineno">  653</span> </div>
<div class="line"><a id="l00654" name="l00654"></a><span class="lineno">  654</span>                        <span class="keyword">using</span> (StreamReader reader = <span class="keyword">new</span> StreamReader(client))</div>
<div class="line"><a id="l00655" name="l00655"></a><span class="lineno">  655</span>                        {</div>
<div class="line"><a id="l00656" name="l00656"></a><span class="lineno">  656</span>                            <span class="keywordflow">while</span> (<span class="keyword">true</span>)</div>
<div class="line"><a id="l00657" name="l00657"></a><span class="lineno">  657</span>                            {</div>
<div class="line"><a id="l00658" name="l00658"></a><span class="lineno">  658</span>                                <span class="keywordtype">string</span> message = reader.ReadLine();</div>
<div class="line"><a id="l00659" name="l00659"></a><span class="lineno">  659</span> </div>
<div class="line"><a id="l00660" name="l00660"></a><span class="lineno">  660</span>                                <span class="keywordflow">if</span> (!<span class="keywordtype">string</span>.IsNullOrEmpty(message))</div>
<div class="line"><a id="l00661" name="l00661"></a><span class="lineno">  661</span>                                {</div>
<div class="line"><a id="l00662" name="l00662"></a><span class="lineno">  662</span>                                    <a class="code hl_event" href="class_mu_p_d_f_core_1_1_mu_p_d_f.html#a74dfefba7aaea3ab4406dcde1ec6849e">StandardOutputMessage</a>?.Invoke(<span class="keyword">null</span>, <span class="keyword">new</span> MessageEventArgs(message));</div>
<div class="line"><a id="l00663" name="l00663"></a><span class="lineno">  663</span>                                }</div>
<div class="line"><a id="l00664" name="l00664"></a><span class="lineno">  664</span>                            }</div>
<div class="line"><a id="l00665" name="l00665"></a><span class="lineno">  665</span>                        }</div>
<div class="line"><a id="l00666" name="l00666"></a><span class="lineno">  666</span>                    }</div>
<div class="line"><a id="l00667" name="l00667"></a><span class="lineno">  667</span> </div>
<div class="line"><a id="l00668" name="l00668"></a><span class="lineno">  668</span>                });</div>
<div class="line"><a id="l00669" name="l00669"></a><span class="lineno">  669</span> </div>
<div class="line"><a id="l00670" name="l00670"></a><span class="lineno">  670</span>                <span class="comment">// Start stderr pipe (this is actually a socket)</span></div>
<div class="line"><a id="l00671" name="l00671"></a><span class="lineno">  671</span>                _ = Task.Run(() =&gt;</div>
<div class="line"><a id="l00672" name="l00672"></a><span class="lineno">  672</span>                {</div>
<div class="line"><a id="l00673" name="l00673"></a><span class="lineno">  673</span>                    <span class="keyword">using</span> (NamedPipeClientStream client = <span class="keyword">new</span> NamedPipeClientStream(pipeName + <span class="stringliteral">&quot;-err&quot;</span>))</div>
<div class="line"><a id="l00674" name="l00674"></a><span class="lineno">  674</span>                    {</div>
<div class="line"><a id="l00675" name="l00675"></a><span class="lineno">  675</span>                        <span class="keywordflow">while</span> (<span class="keyword">true</span>)</div>
<div class="line"><a id="l00676" name="l00676"></a><span class="lineno">  676</span>                        {</div>
<div class="line"><a id="l00677" name="l00677"></a><span class="lineno">  677</span>                            <span class="keywordflow">try</span></div>
<div class="line"><a id="l00678" name="l00678"></a><span class="lineno">  678</span>                            {</div>
<div class="line"><a id="l00679" name="l00679"></a><span class="lineno">  679</span>                                client.Connect(100);</div>
<div class="line"><a id="l00680" name="l00680"></a><span class="lineno">  680</span>                                <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00681" name="l00681"></a><span class="lineno">  681</span>                            }</div>
<div class="line"><a id="l00682" name="l00682"></a><span class="lineno">  682</span>                            <span class="keywordflow">catch</span> { }</div>
<div class="line"><a id="l00683" name="l00683"></a><span class="lineno">  683</span>                        }</div>
<div class="line"><a id="l00684" name="l00684"></a><span class="lineno">  684</span> </div>
<div class="line"><a id="l00685" name="l00685"></a><span class="lineno">  685</span>                        <span class="keyword">using</span> (StreamReader reader = <span class="keyword">new</span> StreamReader(client))</div>
<div class="line"><a id="l00686" name="l00686"></a><span class="lineno">  686</span>                        {</div>
<div class="line"><a id="l00687" name="l00687"></a><span class="lineno">  687</span>                            <span class="keywordflow">while</span> (<span class="keyword">true</span>)</div>
<div class="line"><a id="l00688" name="l00688"></a><span class="lineno">  688</span>                            {</div>
<div class="line"><a id="l00689" name="l00689"></a><span class="lineno">  689</span>                                <span class="keywordtype">string</span> message = reader.ReadLine();</div>
<div class="line"><a id="l00690" name="l00690"></a><span class="lineno">  690</span> </div>
<div class="line"><a id="l00691" name="l00691"></a><span class="lineno">  691</span>                                <span class="keywordflow">if</span> (!<span class="keywordtype">string</span>.IsNullOrEmpty(message))</div>
<div class="line"><a id="l00692" name="l00692"></a><span class="lineno">  692</span>                                {</div>
<div class="line"><a id="l00693" name="l00693"></a><span class="lineno">  693</span>                                    <a class="code hl_event" href="class_mu_p_d_f_core_1_1_mu_p_d_f.html#ae0032d669163ae8d1ae6111f400a5047">StandardErrorMessage</a>?.Invoke(<span class="keyword">null</span>, <span class="keyword">new</span> MessageEventArgs(message));</div>
<div class="line"><a id="l00694" name="l00694"></a><span class="lineno">  694</span>                                }</div>
<div class="line"><a id="l00695" name="l00695"></a><span class="lineno">  695</span>                            }</div>
<div class="line"><a id="l00696" name="l00696"></a><span class="lineno">  696</span>                        }</div>
<div class="line"><a id="l00697" name="l00697"></a><span class="lineno">  697</span>                    }</div>
<div class="line"><a id="l00698" name="l00698"></a><span class="lineno">  698</span> </div>
<div class="line"><a id="l00699" name="l00699"></a><span class="lineno">  699</span>                });</div>
<div class="line"><a id="l00700" name="l00700"></a><span class="lineno">  700</span> </div>
<div class="line"><a id="l00701" name="l00701"></a><span class="lineno">  701</span>                await redirectOutputTask;</div>
<div class="line"><a id="l00702" name="l00702"></a><span class="lineno">  702</span> </div>
<div class="line"><a id="l00703" name="l00703"></a><span class="lineno">  703</span>                ConsoleOut = Console.Out;</div>
<div class="line"><a id="l00704" name="l00704"></a><span class="lineno">  704</span>                ConsoleErr = Console.Error;</div>
<div class="line"><a id="l00705" name="l00705"></a><span class="lineno">  705</span> </div>
<div class="line"><a id="l00706" name="l00706"></a><span class="lineno">  706</span>                ConsoleColor fg = Console.ForegroundColor;</div>
<div class="line"><a id="l00707" name="l00707"></a><span class="lineno">  707</span>                ConsoleColor bg = Console.BackgroundColor;</div>
<div class="line"><a id="l00708" name="l00708"></a><span class="lineno">  708</span> </div>
<div class="line"><a id="l00709" name="l00709"></a><span class="lineno">  709</span>                Console.ResetColor();</div>
<div class="line"><a id="l00710" name="l00710"></a><span class="lineno">  710</span> </div>
<div class="line"><a id="l00711" name="l00711"></a><span class="lineno">  711</span>                DefaultForeground = Console.ForegroundColor;</div>
<div class="line"><a id="l00712" name="l00712"></a><span class="lineno">  712</span>                DefaultBackground = Console.BackgroundColor;</div>
<div class="line"><a id="l00713" name="l00713"></a><span class="lineno">  713</span> </div>
<div class="line"><a id="l00714" name="l00714"></a><span class="lineno">  714</span>                Console.ForegroundColor = fg;</div>
<div class="line"><a id="l00715" name="l00715"></a><span class="lineno">  715</span>                Console.BackgroundColor = bg;</div>
<div class="line"><a id="l00716" name="l00716"></a><span class="lineno">  716</span> </div>
<div class="line"><a id="l00717" name="l00717"></a><span class="lineno">  717</span>                Console.SetOut(<span class="keyword">new</span> FileDescriptorTextWriter(Console.Out.Encoding, StdOutFD));</div>
<div class="line"><a id="l00718" name="l00718"></a><span class="lineno">  718</span>                Console.SetError(<span class="keyword">new</span> FileDescriptorTextWriter(Console.Error.Encoding, StdErrFD));</div>
<div class="line"><a id="l00719" name="l00719"></a><span class="lineno">  719</span>            }</div>
<div class="line"><a id="l00720" name="l00720"></a><span class="lineno">  720</span>        }</div>
<div class="line"><a id="l00721" name="l00721"></a><span class="lineno">  721</span> </div>
<div class="line"><a id="l00722" name="l00722"></a><span class="lineno">  722</span>        <span class="keyword">private</span> <span class="keyword">static</span> async Task RedirectOutputWindows()</div>
<div class="line"><a id="l00723" name="l00723"></a><span class="lineno">  723</span>        {</div>
<div class="line"><a id="l00724" name="l00724"></a><span class="lineno">  724</span>            <span class="keywordflow">if</span> (StdOutFD &lt; 0 &amp;&amp; StdErrFD &lt; 0)</div>
<div class="line"><a id="l00725" name="l00725"></a><span class="lineno">  725</span>            {</div>
<div class="line"><a id="l00726" name="l00726"></a><span class="lineno">  726</span>                <span class="keywordtype">string</span> pipeName = <span class="stringliteral">&quot;MuPDFCore-&quot;</span> + Guid.NewGuid().ToString();</div>
<div class="line"><a id="l00727" name="l00727"></a><span class="lineno">  727</span> </div>
<div class="line"><a id="l00728" name="l00728"></a><span class="lineno">  728</span>                Task redirectOutputTask = System.Threading.Tasks.Task.Run(() =&gt;</div>
<div class="line"><a id="l00729" name="l00729"></a><span class="lineno">  729</span>                {</div>
<div class="line"><a id="l00730" name="l00730"></a><span class="lineno">  730</span>                    NativeMethods.RedirectOutput(out StdOutFD, out StdErrFD, <span class="stringliteral">&quot;\\\\.\\pipe\\&quot;</span> + pipeName + <span class="stringliteral">&quot;-out&quot;</span>, <span class="stringliteral">&quot;\\\\.\\pipe\\&quot;</span> + pipeName + <span class="stringliteral">&quot;-err&quot;</span>);</div>
<div class="line"><a id="l00731" name="l00731"></a><span class="lineno">  731</span>                });</div>
<div class="line"><a id="l00732" name="l00732"></a><span class="lineno">  732</span> </div>
<div class="line"><a id="l00733" name="l00733"></a><span class="lineno">  733</span>                <span class="comment">// Start stdout pipe</span></div>
<div class="line"><a id="l00734" name="l00734"></a><span class="lineno">  734</span>                _ = Task.Run(() =&gt;</div>
<div class="line"><a id="l00735" name="l00735"></a><span class="lineno">  735</span>                {</div>
<div class="line"><a id="l00736" name="l00736"></a><span class="lineno">  736</span>                    <span class="keyword">using</span> (NamedPipeClientStream client = <span class="keyword">new</span> NamedPipeClientStream(pipeName + <span class="stringliteral">&quot;-out&quot;</span>))</div>
<div class="line"><a id="l00737" name="l00737"></a><span class="lineno">  737</span>                    {</div>
<div class="line"><a id="l00738" name="l00738"></a><span class="lineno">  738</span>                        <span class="keywordflow">while</span> (<span class="keyword">true</span>)</div>
<div class="line"><a id="l00739" name="l00739"></a><span class="lineno">  739</span>                        {</div>
<div class="line"><a id="l00740" name="l00740"></a><span class="lineno">  740</span>                            <span class="keywordflow">try</span></div>
<div class="line"><a id="l00741" name="l00741"></a><span class="lineno">  741</span>                            {</div>
<div class="line"><a id="l00742" name="l00742"></a><span class="lineno">  742</span>                                client.Connect(100);</div>
<div class="line"><a id="l00743" name="l00743"></a><span class="lineno">  743</span>                                <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00744" name="l00744"></a><span class="lineno">  744</span>                            }</div>
<div class="line"><a id="l00745" name="l00745"></a><span class="lineno">  745</span>                            <span class="keywordflow">catch</span> { }</div>
<div class="line"><a id="l00746" name="l00746"></a><span class="lineno">  746</span>                        }</div>
<div class="line"><a id="l00747" name="l00747"></a><span class="lineno">  747</span> </div>
<div class="line"><a id="l00748" name="l00748"></a><span class="lineno">  748</span>                        <span class="keyword">using</span> (StreamReader reader = <span class="keyword">new</span> StreamReader(client))</div>
<div class="line"><a id="l00749" name="l00749"></a><span class="lineno">  749</span>                        {</div>
<div class="line"><a id="l00750" name="l00750"></a><span class="lineno">  750</span>                            <span class="keywordflow">while</span> (<span class="keyword">true</span>)</div>
<div class="line"><a id="l00751" name="l00751"></a><span class="lineno">  751</span>                            {</div>
<div class="line"><a id="l00752" name="l00752"></a><span class="lineno">  752</span>                                <span class="keywordtype">string</span> message = reader.ReadLine();</div>
<div class="line"><a id="l00753" name="l00753"></a><span class="lineno">  753</span> </div>
<div class="line"><a id="l00754" name="l00754"></a><span class="lineno">  754</span>                                <span class="keywordflow">if</span> (!<span class="keywordtype">string</span>.IsNullOrEmpty(message))</div>
<div class="line"><a id="l00755" name="l00755"></a><span class="lineno">  755</span>                                {</div>
<div class="line"><a id="l00756" name="l00756"></a><span class="lineno">  756</span>                                    <a class="code hl_event" href="class_mu_p_d_f_core_1_1_mu_p_d_f.html#a74dfefba7aaea3ab4406dcde1ec6849e">StandardOutputMessage</a>?.Invoke(<span class="keyword">null</span>, <span class="keyword">new</span> MessageEventArgs(message));</div>
<div class="line"><a id="l00757" name="l00757"></a><span class="lineno">  757</span>                                }</div>
<div class="line"><a id="l00758" name="l00758"></a><span class="lineno">  758</span>                            }</div>
<div class="line"><a id="l00759" name="l00759"></a><span class="lineno">  759</span>                        }</div>
<div class="line"><a id="l00760" name="l00760"></a><span class="lineno">  760</span>                    }</div>
<div class="line"><a id="l00761" name="l00761"></a><span class="lineno">  761</span> </div>
<div class="line"><a id="l00762" name="l00762"></a><span class="lineno">  762</span>                });</div>
<div class="line"><a id="l00763" name="l00763"></a><span class="lineno">  763</span> </div>
<div class="line"><a id="l00764" name="l00764"></a><span class="lineno">  764</span>                <span class="comment">// Start stderr pipe</span></div>
<div class="line"><a id="l00765" name="l00765"></a><span class="lineno">  765</span>                _ = Task.Run(() =&gt;</div>
<div class="line"><a id="l00766" name="l00766"></a><span class="lineno">  766</span>                {</div>
<div class="line"><a id="l00767" name="l00767"></a><span class="lineno">  767</span>                    <span class="keyword">using</span> (NamedPipeClientStream client = <span class="keyword">new</span> NamedPipeClientStream(pipeName + <span class="stringliteral">&quot;-err&quot;</span>))</div>
<div class="line"><a id="l00768" name="l00768"></a><span class="lineno">  768</span>                    {</div>
<div class="line"><a id="l00769" name="l00769"></a><span class="lineno">  769</span>                        <span class="keywordflow">while</span> (<span class="keyword">true</span>)</div>
<div class="line"><a id="l00770" name="l00770"></a><span class="lineno">  770</span>                        {</div>
<div class="line"><a id="l00771" name="l00771"></a><span class="lineno">  771</span>                            <span class="keywordflow">try</span></div>
<div class="line"><a id="l00772" name="l00772"></a><span class="lineno">  772</span>                            {</div>
<div class="line"><a id="l00773" name="l00773"></a><span class="lineno">  773</span>                                client.Connect(100);</div>
<div class="line"><a id="l00774" name="l00774"></a><span class="lineno">  774</span>                                <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00775" name="l00775"></a><span class="lineno">  775</span>                            }</div>
<div class="line"><a id="l00776" name="l00776"></a><span class="lineno">  776</span>                            <span class="keywordflow">catch</span> { }</div>
<div class="line"><a id="l00777" name="l00777"></a><span class="lineno">  777</span>                        }</div>
<div class="line"><a id="l00778" name="l00778"></a><span class="lineno">  778</span> </div>
<div class="line"><a id="l00779" name="l00779"></a><span class="lineno">  779</span>                        <span class="keyword">using</span> (StreamReader reader = <span class="keyword">new</span> StreamReader(client))</div>
<div class="line"><a id="l00780" name="l00780"></a><span class="lineno">  780</span>                        {</div>
<div class="line"><a id="l00781" name="l00781"></a><span class="lineno">  781</span>                            <span class="keywordflow">while</span> (<span class="keyword">true</span>)</div>
<div class="line"><a id="l00782" name="l00782"></a><span class="lineno">  782</span>                            {</div>
<div class="line"><a id="l00783" name="l00783"></a><span class="lineno">  783</span>                                <span class="keywordtype">string</span> message = reader.ReadLine();</div>
<div class="line"><a id="l00784" name="l00784"></a><span class="lineno">  784</span> </div>
<div class="line"><a id="l00785" name="l00785"></a><span class="lineno">  785</span>                                <span class="keywordflow">if</span> (!<span class="keywordtype">string</span>.IsNullOrEmpty(message))</div>
<div class="line"><a id="l00786" name="l00786"></a><span class="lineno">  786</span>                                {</div>
<div class="line"><a id="l00787" name="l00787"></a><span class="lineno">  787</span>                                    <a class="code hl_event" href="class_mu_p_d_f_core_1_1_mu_p_d_f.html#ae0032d669163ae8d1ae6111f400a5047">StandardErrorMessage</a>?.Invoke(<span class="keyword">null</span>, <span class="keyword">new</span> MessageEventArgs(message));</div>
<div class="line"><a id="l00788" name="l00788"></a><span class="lineno">  788</span>                                }</div>
<div class="line"><a id="l00789" name="l00789"></a><span class="lineno">  789</span>                            }</div>
<div class="line"><a id="l00790" name="l00790"></a><span class="lineno">  790</span>                        }</div>
<div class="line"><a id="l00791" name="l00791"></a><span class="lineno">  791</span>                    }</div>
<div class="line"><a id="l00792" name="l00792"></a><span class="lineno">  792</span> </div>
<div class="line"><a id="l00793" name="l00793"></a><span class="lineno">  793</span>                });</div>
<div class="line"><a id="l00794" name="l00794"></a><span class="lineno">  794</span> </div>
<div class="line"><a id="l00795" name="l00795"></a><span class="lineno">  795</span>                await redirectOutputTask;</div>
<div class="line"><a id="l00796" name="l00796"></a><span class="lineno">  796</span> </div>
<div class="line"><a id="l00797" name="l00797"></a><span class="lineno">  797</span>                ConsoleOut = Console.Out;</div>
<div class="line"><a id="l00798" name="l00798"></a><span class="lineno">  798</span>                ConsoleErr = Console.Error;</div>
<div class="line"><a id="l00799" name="l00799"></a><span class="lineno">  799</span> </div>
<div class="line"><a id="l00800" name="l00800"></a><span class="lineno">  800</span>                ConsoleColor fg = Console.ForegroundColor;</div>
<div class="line"><a id="l00801" name="l00801"></a><span class="lineno">  801</span>                ConsoleColor bg = Console.BackgroundColor;</div>
<div class="line"><a id="l00802" name="l00802"></a><span class="lineno">  802</span> </div>
<div class="line"><a id="l00803" name="l00803"></a><span class="lineno">  803</span>                Console.ResetColor();</div>
<div class="line"><a id="l00804" name="l00804"></a><span class="lineno">  804</span> </div>
<div class="line"><a id="l00805" name="l00805"></a><span class="lineno">  805</span>                DefaultForeground = Console.ForegroundColor;</div>
<div class="line"><a id="l00806" name="l00806"></a><span class="lineno">  806</span>                DefaultBackground = Console.BackgroundColor;</div>
<div class="line"><a id="l00807" name="l00807"></a><span class="lineno">  807</span> </div>
<div class="line"><a id="l00808" name="l00808"></a><span class="lineno">  808</span>                Console.ForegroundColor = fg;</div>
<div class="line"><a id="l00809" name="l00809"></a><span class="lineno">  809</span>                Console.BackgroundColor = bg;</div>
<div class="line"><a id="l00810" name="l00810"></a><span class="lineno">  810</span> </div>
<div class="line"><a id="l00811" name="l00811"></a><span class="lineno">  811</span>                Console.SetOut(<span class="keyword">new</span> FileDescriptorTextWriter(Console.Out.Encoding, StdOutFD));</div>
<div class="line"><a id="l00812" name="l00812"></a><span class="lineno">  812</span>                Console.SetError(<span class="keyword">new</span> FileDescriptorTextWriter(Console.Error.Encoding, StdErrFD));</div>
<div class="line"><a id="l00813" name="l00813"></a><span class="lineno">  813</span>            }</div>
<div class="line"><a id="l00814" name="l00814"></a><span class="lineno">  814</span>        }</div>
<div class="line"><a id="l00815" name="l00815"></a><span class="lineno">  815</span><span class="comment"></span> </div>
<div class="line"><a id="l00816" name="l00816"></a><span class="lineno">  816</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l00817" name="l00817"></a><span class="lineno">  817</span><span class="comment">        /// Reset the default standard output and error streams for the native MuPDF library.</span></div>
<div class="line"><a id="l00818" name="l00818"></a><span class="lineno">  818</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l00819" name="l00819"></a><span class="lineno"><a class="line" href="class_mu_p_d_f_core_1_1_mu_p_d_f.html#af990305716566eb39d123c0d3a857396">  819</a></span><span class="comment"></span>        <span class="keyword">public</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_mu_p_d_f_core_1_1_mu_p_d_f.html#af990305716566eb39d123c0d3a857396">ResetOutput</a>()</div>
<div class="line"><a id="l00820" name="l00820"></a><span class="lineno">  820</span>        {</div>
<div class="line"><a id="l00821" name="l00821"></a><span class="lineno">  821</span>            lock (CleanupLock)</div>
<div class="line"><a id="l00822" name="l00822"></a><span class="lineno">  822</span>            {</div>
<div class="line"><a id="l00823" name="l00823"></a><span class="lineno">  823</span>                <span class="keywordflow">if</span> (StdOutFD &gt;= 0 &amp;&amp; StdErrFD &gt;= 0)</div>
<div class="line"><a id="l00824" name="l00824"></a><span class="lineno">  824</span>                {</div>
<div class="line"><a id="l00825" name="l00825"></a><span class="lineno">  825</span>                    NativeMethods.ResetOutput(StdOutFD, StdErrFD);</div>
<div class="line"><a id="l00826" name="l00826"></a><span class="lineno">  826</span> </div>
<div class="line"><a id="l00827" name="l00827"></a><span class="lineno">  827</span>                    Console.SetOut(ConsoleOut);</div>
<div class="line"><a id="l00828" name="l00828"></a><span class="lineno">  828</span>                    Console.SetError(ConsoleErr);</div>
<div class="line"><a id="l00829" name="l00829"></a><span class="lineno">  829</span> </div>
<div class="line"><a id="l00830" name="l00830"></a><span class="lineno">  830</span>                    StdOutFD = -1;</div>
<div class="line"><a id="l00831" name="l00831"></a><span class="lineno">  831</span>                    StdErrFD = -1;</div>
<div class="line"><a id="l00832" name="l00832"></a><span class="lineno">  832</span> </div>
<div class="line"><a id="l00833" name="l00833"></a><span class="lineno">  833</span>                    <span class="keywordflow">if</span> (!System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform(OSPlatform.Windows))</div>
<div class="line"><a id="l00834" name="l00834"></a><span class="lineno">  834</span>                    {</div>
<div class="line"><a id="l00835" name="l00835"></a><span class="lineno">  835</span>                        File.Delete(PipeName + <span class="stringliteral">&quot;-out&quot;</span>);</div>
<div class="line"><a id="l00836" name="l00836"></a><span class="lineno">  836</span>                        File.Delete(PipeName + <span class="stringliteral">&quot;-err&quot;</span>);</div>
<div class="line"><a id="l00837" name="l00837"></a><span class="lineno">  837</span>                    }</div>
<div class="line"><a id="l00838" name="l00838"></a><span class="lineno">  838</span>                }</div>
<div class="line"><a id="l00839" name="l00839"></a><span class="lineno">  839</span>            }</div>
<div class="line"><a id="l00840" name="l00840"></a><span class="lineno">  840</span>        }</div>
<div class="line"><a id="l00841" name="l00841"></a><span class="lineno">  841</span> </div>
<div class="line"><a id="l00842" name="l00842"></a><span class="lineno">  842</span>        <span class="keyword">internal</span> <span class="keyword">class </span>FileDescriptorTextWriter : TextWriter</div>
<div class="line"><a id="l00843" name="l00843"></a><span class="lineno">  843</span>        {</div>
<div class="line"><a id="l00844" name="l00844"></a><span class="lineno">  844</span>            <span class="keyword">public</span> <span class="keyword">override</span> Encoding Encoding { <span class="keyword">get</span>; }</div>
<div class="line"><a id="l00845" name="l00845"></a><span class="lineno">  845</span>            <span class="keyword">private</span> <span class="keywordtype">int</span> FileDescriptor { <span class="keyword">get</span>; }</div>
<div class="line"><a id="l00846" name="l00846"></a><span class="lineno">  846</span> </div>
<div class="line"><a id="l00847" name="l00847"></a><span class="lineno">  847</span>            <span class="keyword">public</span> FileDescriptorTextWriter(Encoding encoding, <span class="keywordtype">int</span> fileDescriptor)</div>
<div class="line"><a id="l00848" name="l00848"></a><span class="lineno">  848</span>            {</div>
<div class="line"><a id="l00849" name="l00849"></a><span class="lineno">  849</span>                this.Encoding = encoding;</div>
<div class="line"><a id="l00850" name="l00850"></a><span class="lineno">  850</span>                this.FileDescriptor = fileDescriptor;</div>
<div class="line"><a id="l00851" name="l00851"></a><span class="lineno">  851</span>            }</div>
<div class="line"><a id="l00852" name="l00852"></a><span class="lineno">  852</span> </div>
<div class="line"><a id="l00853" name="l00853"></a><span class="lineno">  853</span>            <span class="keyword">public</span> <span class="keyword">override</span> <span class="keywordtype">void</span> Write(<span class="keywordtype">string</span> value)</div>
<div class="line"><a id="l00854" name="l00854"></a><span class="lineno">  854</span>            {</div>
<div class="line"><a id="l00855" name="l00855"></a><span class="lineno">  855</span>                StringBuilder sb = <span class="keyword">new</span> StringBuilder();</div>
<div class="line"><a id="l00856" name="l00856"></a><span class="lineno">  856</span> </div>
<div class="line"><a id="l00857" name="l00857"></a><span class="lineno">  857</span>                <span class="keywordflow">if</span> (Console.ForegroundColor != DefaultForeground || Console.BackgroundColor != DefaultBackground)</div>
<div class="line"><a id="l00858" name="l00858"></a><span class="lineno">  858</span>                {</div>
<div class="line"><a id="l00859" name="l00859"></a><span class="lineno">  859</span>                    sb.Append(<span class="stringliteral">&quot;&#x241B;[&quot;</span>);</div>
<div class="line"><a id="l00860" name="l00860"></a><span class="lineno">  860</span>                }</div>
<div class="line"><a id="l00861" name="l00861"></a><span class="lineno">  861</span> </div>
<div class="line"><a id="l00862" name="l00862"></a><span class="lineno">  862</span>                <span class="keywordflow">if</span> (Console.ForegroundColor != DefaultForeground)</div>
<div class="line"><a id="l00863" name="l00863"></a><span class="lineno">  863</span>                {</div>
<div class="line"><a id="l00864" name="l00864"></a><span class="lineno">  864</span>                    <span class="keywordflow">switch</span> (Console.ForegroundColor)</div>
<div class="line"><a id="l00865" name="l00865"></a><span class="lineno">  865</span>                    {</div>
<div class="line"><a id="l00866" name="l00866"></a><span class="lineno">  866</span>                        <span class="keywordflow">case</span> ConsoleColor.Black:</div>
<div class="line"><a id="l00867" name="l00867"></a><span class="lineno">  867</span>                            sb.Append(<span class="stringliteral">&quot;30&quot;</span>);</div>
<div class="line"><a id="l00868" name="l00868"></a><span class="lineno">  868</span>                            <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00869" name="l00869"></a><span class="lineno">  869</span>                        <span class="keywordflow">case</span> ConsoleColor.DarkRed:</div>
<div class="line"><a id="l00870" name="l00870"></a><span class="lineno">  870</span>                            sb.Append(<span class="stringliteral">&quot;31&quot;</span>);</div>
<div class="line"><a id="l00871" name="l00871"></a><span class="lineno">  871</span>                            <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00872" name="l00872"></a><span class="lineno">  872</span>                        <span class="keywordflow">case</span> ConsoleColor.DarkGreen:</div>
<div class="line"><a id="l00873" name="l00873"></a><span class="lineno">  873</span>                            sb.Append(<span class="stringliteral">&quot;32&quot;</span>);</div>
<div class="line"><a id="l00874" name="l00874"></a><span class="lineno">  874</span>                            <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00875" name="l00875"></a><span class="lineno">  875</span>                        <span class="keywordflow">case</span> ConsoleColor.DarkYellow:</div>
<div class="line"><a id="l00876" name="l00876"></a><span class="lineno">  876</span>                            sb.Append(<span class="stringliteral">&quot;33&quot;</span>);</div>
<div class="line"><a id="l00877" name="l00877"></a><span class="lineno">  877</span>                            <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00878" name="l00878"></a><span class="lineno">  878</span>                        <span class="keywordflow">case</span> ConsoleColor.DarkBlue:</div>
<div class="line"><a id="l00879" name="l00879"></a><span class="lineno">  879</span>                            sb.Append(<span class="stringliteral">&quot;34&quot;</span>);</div>
<div class="line"><a id="l00880" name="l00880"></a><span class="lineno">  880</span>                            <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00881" name="l00881"></a><span class="lineno">  881</span>                        <span class="keywordflow">case</span> ConsoleColor.DarkMagenta:</div>
<div class="line"><a id="l00882" name="l00882"></a><span class="lineno">  882</span>                            sb.Append(<span class="stringliteral">&quot;35&quot;</span>);</div>
<div class="line"><a id="l00883" name="l00883"></a><span class="lineno">  883</span>                            <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00884" name="l00884"></a><span class="lineno">  884</span>                        <span class="keywordflow">case</span> ConsoleColor.DarkCyan:</div>
<div class="line"><a id="l00885" name="l00885"></a><span class="lineno">  885</span>                            sb.Append(<span class="stringliteral">&quot;36&quot;</span>);</div>
<div class="line"><a id="l00886" name="l00886"></a><span class="lineno">  886</span>                            <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00887" name="l00887"></a><span class="lineno">  887</span>                        <span class="keywordflow">case</span> ConsoleColor.Gray:</div>
<div class="line"><a id="l00888" name="l00888"></a><span class="lineno">  888</span>                            sb.Append(<span class="stringliteral">&quot;37&quot;</span>);</div>
<div class="line"><a id="l00889" name="l00889"></a><span class="lineno">  889</span>                            <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00890" name="l00890"></a><span class="lineno">  890</span>                        <span class="keywordflow">case</span> ConsoleColor.DarkGray:</div>
<div class="line"><a id="l00891" name="l00891"></a><span class="lineno">  891</span>                            sb.Append(<span class="stringliteral">&quot;90&quot;</span>);</div>
<div class="line"><a id="l00892" name="l00892"></a><span class="lineno">  892</span>                            <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00893" name="l00893"></a><span class="lineno">  893</span>                        <span class="keywordflow">case</span> ConsoleColor.Red:</div>
<div class="line"><a id="l00894" name="l00894"></a><span class="lineno">  894</span>                            sb.Append(<span class="stringliteral">&quot;91&quot;</span>);</div>
<div class="line"><a id="l00895" name="l00895"></a><span class="lineno">  895</span>                            <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00896" name="l00896"></a><span class="lineno">  896</span>                        <span class="keywordflow">case</span> ConsoleColor.Green:</div>
<div class="line"><a id="l00897" name="l00897"></a><span class="lineno">  897</span>                            sb.Append(<span class="stringliteral">&quot;92&quot;</span>);</div>
<div class="line"><a id="l00898" name="l00898"></a><span class="lineno">  898</span>                            <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00899" name="l00899"></a><span class="lineno">  899</span>                        <span class="keywordflow">case</span> ConsoleColor.Yellow:</div>
<div class="line"><a id="l00900" name="l00900"></a><span class="lineno">  900</span>                            sb.Append(<span class="stringliteral">&quot;93&quot;</span>);</div>
<div class="line"><a id="l00901" name="l00901"></a><span class="lineno">  901</span>                            <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00902" name="l00902"></a><span class="lineno">  902</span>                        <span class="keywordflow">case</span> ConsoleColor.Blue:</div>
<div class="line"><a id="l00903" name="l00903"></a><span class="lineno">  903</span>                            sb.Append(<span class="stringliteral">&quot;94&quot;</span>);</div>
<div class="line"><a id="l00904" name="l00904"></a><span class="lineno">  904</span>                            <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00905" name="l00905"></a><span class="lineno">  905</span>                        <span class="keywordflow">case</span> ConsoleColor.Magenta:</div>
<div class="line"><a id="l00906" name="l00906"></a><span class="lineno">  906</span>                            sb.Append(<span class="stringliteral">&quot;95&quot;</span>);</div>
<div class="line"><a id="l00907" name="l00907"></a><span class="lineno">  907</span>                            <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00908" name="l00908"></a><span class="lineno">  908</span>                        <span class="keywordflow">case</span> ConsoleColor.Cyan:</div>
<div class="line"><a id="l00909" name="l00909"></a><span class="lineno">  909</span>                            sb.Append(<span class="stringliteral">&quot;96&quot;</span>);</div>
<div class="line"><a id="l00910" name="l00910"></a><span class="lineno">  910</span>                            <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00911" name="l00911"></a><span class="lineno">  911</span>                        <span class="keywordflow">case</span> ConsoleColor.White:</div>
<div class="line"><a id="l00912" name="l00912"></a><span class="lineno">  912</span>                            sb.Append(<span class="stringliteral">&quot;97&quot;</span>);</div>
<div class="line"><a id="l00913" name="l00913"></a><span class="lineno">  913</span>                            <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00914" name="l00914"></a><span class="lineno">  914</span>                    }</div>
<div class="line"><a id="l00915" name="l00915"></a><span class="lineno">  915</span>                }</div>
<div class="line"><a id="l00916" name="l00916"></a><span class="lineno">  916</span> </div>
<div class="line"><a id="l00917" name="l00917"></a><span class="lineno">  917</span>                <span class="keywordflow">if</span> (Console.ForegroundColor != DefaultForeground &amp;&amp; Console.BackgroundColor != DefaultBackground)</div>
<div class="line"><a id="l00918" name="l00918"></a><span class="lineno">  918</span>                {</div>
<div class="line"><a id="l00919" name="l00919"></a><span class="lineno">  919</span>                    sb.Append(<span class="stringliteral">&quot;;&quot;</span>);</div>
<div class="line"><a id="l00920" name="l00920"></a><span class="lineno">  920</span>                }</div>
<div class="line"><a id="l00921" name="l00921"></a><span class="lineno">  921</span> </div>
<div class="line"><a id="l00922" name="l00922"></a><span class="lineno">  922</span>                <span class="keywordflow">if</span> (Console.BackgroundColor != DefaultBackground)</div>
<div class="line"><a id="l00923" name="l00923"></a><span class="lineno">  923</span>                {</div>
<div class="line"><a id="l00924" name="l00924"></a><span class="lineno">  924</span>                    <span class="keywordflow">switch</span> (Console.BackgroundColor)</div>
<div class="line"><a id="l00925" name="l00925"></a><span class="lineno">  925</span>                    {</div>
<div class="line"><a id="l00926" name="l00926"></a><span class="lineno">  926</span>                        <span class="keywordflow">case</span> ConsoleColor.Black:</div>
<div class="line"><a id="l00927" name="l00927"></a><span class="lineno">  927</span>                            sb.Append(<span class="stringliteral">&quot;40&quot;</span>);</div>
<div class="line"><a id="l00928" name="l00928"></a><span class="lineno">  928</span>                            <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00929" name="l00929"></a><span class="lineno">  929</span>                        <span class="keywordflow">case</span> ConsoleColor.DarkRed:</div>
<div class="line"><a id="l00930" name="l00930"></a><span class="lineno">  930</span>                            sb.Append(<span class="stringliteral">&quot;41&quot;</span>);</div>
<div class="line"><a id="l00931" name="l00931"></a><span class="lineno">  931</span>                            <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00932" name="l00932"></a><span class="lineno">  932</span>                        <span class="keywordflow">case</span> ConsoleColor.DarkGreen:</div>
<div class="line"><a id="l00933" name="l00933"></a><span class="lineno">  933</span>                            sb.Append(<span class="stringliteral">&quot;42&quot;</span>);</div>
<div class="line"><a id="l00934" name="l00934"></a><span class="lineno">  934</span>                            <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00935" name="l00935"></a><span class="lineno">  935</span>                        <span class="keywordflow">case</span> ConsoleColor.DarkYellow:</div>
<div class="line"><a id="l00936" name="l00936"></a><span class="lineno">  936</span>                            sb.Append(<span class="stringliteral">&quot;43&quot;</span>);</div>
<div class="line"><a id="l00937" name="l00937"></a><span class="lineno">  937</span>                            <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00938" name="l00938"></a><span class="lineno">  938</span>                        <span class="keywordflow">case</span> ConsoleColor.DarkBlue:</div>
<div class="line"><a id="l00939" name="l00939"></a><span class="lineno">  939</span>                            sb.Append(<span class="stringliteral">&quot;44&quot;</span>);</div>
<div class="line"><a id="l00940" name="l00940"></a><span class="lineno">  940</span>                            <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00941" name="l00941"></a><span class="lineno">  941</span>                        <span class="keywordflow">case</span> ConsoleColor.DarkMagenta:</div>
<div class="line"><a id="l00942" name="l00942"></a><span class="lineno">  942</span>                            sb.Append(<span class="stringliteral">&quot;45&quot;</span>);</div>
<div class="line"><a id="l00943" name="l00943"></a><span class="lineno">  943</span>                            <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00944" name="l00944"></a><span class="lineno">  944</span>                        <span class="keywordflow">case</span> ConsoleColor.DarkCyan:</div>
<div class="line"><a id="l00945" name="l00945"></a><span class="lineno">  945</span>                            sb.Append(<span class="stringliteral">&quot;46&quot;</span>);</div>
<div class="line"><a id="l00946" name="l00946"></a><span class="lineno">  946</span>                            <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00947" name="l00947"></a><span class="lineno">  947</span>                        <span class="keywordflow">case</span> ConsoleColor.Gray:</div>
<div class="line"><a id="l00948" name="l00948"></a><span class="lineno">  948</span>                            sb.Append(<span class="stringliteral">&quot;47&quot;</span>);</div>
<div class="line"><a id="l00949" name="l00949"></a><span class="lineno">  949</span>                            <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00950" name="l00950"></a><span class="lineno">  950</span>                        <span class="keywordflow">case</span> ConsoleColor.DarkGray:</div>
<div class="line"><a id="l00951" name="l00951"></a><span class="lineno">  951</span>                            sb.Append(<span class="stringliteral">&quot;100&quot;</span>);</div>
<div class="line"><a id="l00952" name="l00952"></a><span class="lineno">  952</span>                            <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00953" name="l00953"></a><span class="lineno">  953</span>                        <span class="keywordflow">case</span> ConsoleColor.Red:</div>
<div class="line"><a id="l00954" name="l00954"></a><span class="lineno">  954</span>                            sb.Append(<span class="stringliteral">&quot;101&quot;</span>);</div>
<div class="line"><a id="l00955" name="l00955"></a><span class="lineno">  955</span>                            <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00956" name="l00956"></a><span class="lineno">  956</span>                        <span class="keywordflow">case</span> ConsoleColor.Green:</div>
<div class="line"><a id="l00957" name="l00957"></a><span class="lineno">  957</span>                            sb.Append(<span class="stringliteral">&quot;102&quot;</span>);</div>
<div class="line"><a id="l00958" name="l00958"></a><span class="lineno">  958</span>                            <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00959" name="l00959"></a><span class="lineno">  959</span>                        <span class="keywordflow">case</span> ConsoleColor.Yellow:</div>
<div class="line"><a id="l00960" name="l00960"></a><span class="lineno">  960</span>                            sb.Append(<span class="stringliteral">&quot;103&quot;</span>);</div>
<div class="line"><a id="l00961" name="l00961"></a><span class="lineno">  961</span>                            <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00962" name="l00962"></a><span class="lineno">  962</span>                        <span class="keywordflow">case</span> ConsoleColor.Blue:</div>
<div class="line"><a id="l00963" name="l00963"></a><span class="lineno">  963</span>                            sb.Append(<span class="stringliteral">&quot;104&quot;</span>);</div>
<div class="line"><a id="l00964" name="l00964"></a><span class="lineno">  964</span>                            <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00965" name="l00965"></a><span class="lineno">  965</span>                        <span class="keywordflow">case</span> ConsoleColor.Magenta:</div>
<div class="line"><a id="l00966" name="l00966"></a><span class="lineno">  966</span>                            sb.Append(<span class="stringliteral">&quot;105&quot;</span>);</div>
<div class="line"><a id="l00967" name="l00967"></a><span class="lineno">  967</span>                            <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00968" name="l00968"></a><span class="lineno">  968</span>                        <span class="keywordflow">case</span> ConsoleColor.Cyan:</div>
<div class="line"><a id="l00969" name="l00969"></a><span class="lineno">  969</span>                            sb.Append(<span class="stringliteral">&quot;106&quot;</span>);</div>
<div class="line"><a id="l00970" name="l00970"></a><span class="lineno">  970</span>                            <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00971" name="l00971"></a><span class="lineno">  971</span>                        <span class="keywordflow">case</span> ConsoleColor.White:</div>
<div class="line"><a id="l00972" name="l00972"></a><span class="lineno">  972</span>                            sb.Append(<span class="stringliteral">&quot;107&quot;</span>);</div>
<div class="line"><a id="l00973" name="l00973"></a><span class="lineno">  973</span>                            <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00974" name="l00974"></a><span class="lineno">  974</span>                    }</div>
<div class="line"><a id="l00975" name="l00975"></a><span class="lineno">  975</span>                }</div>
<div class="line"><a id="l00976" name="l00976"></a><span class="lineno">  976</span> </div>
<div class="line"><a id="l00977" name="l00977"></a><span class="lineno">  977</span>                <span class="keywordflow">if</span> (Console.ForegroundColor != DefaultForeground || Console.BackgroundColor != DefaultBackground)</div>
<div class="line"><a id="l00978" name="l00978"></a><span class="lineno">  978</span>                {</div>
<div class="line"><a id="l00979" name="l00979"></a><span class="lineno">  979</span>                    sb.Append(<span class="stringliteral">&quot;m&quot;</span>);</div>
<div class="line"><a id="l00980" name="l00980"></a><span class="lineno">  980</span>                }</div>
<div class="line"><a id="l00981" name="l00981"></a><span class="lineno">  981</span> </div>
<div class="line"><a id="l00982" name="l00982"></a><span class="lineno">  982</span>                sb.Append(value);</div>
<div class="line"><a id="l00983" name="l00983"></a><span class="lineno">  983</span> </div>
<div class="line"><a id="l00984" name="l00984"></a><span class="lineno">  984</span>                <span class="keywordflow">if</span> (Console.ForegroundColor != DefaultForeground || Console.BackgroundColor != DefaultBackground)</div>
<div class="line"><a id="l00985" name="l00985"></a><span class="lineno">  985</span>                {</div>
<div class="line"><a id="l00986" name="l00986"></a><span class="lineno">  986</span>                    sb.Append(<span class="stringliteral">&quot;&#x241B;[&quot;</span>);</div>
<div class="line"><a id="l00987" name="l00987"></a><span class="lineno">  987</span>                }</div>
<div class="line"><a id="l00988" name="l00988"></a><span class="lineno">  988</span> </div>
<div class="line"><a id="l00989" name="l00989"></a><span class="lineno">  989</span>                <span class="keywordflow">if</span> (Console.ForegroundColor != DefaultForeground)</div>
<div class="line"><a id="l00990" name="l00990"></a><span class="lineno">  990</span>                {</div>
<div class="line"><a id="l00991" name="l00991"></a><span class="lineno">  991</span>                    sb.Append(<span class="stringliteral">&quot;39&quot;</span>);</div>
<div class="line"><a id="l00992" name="l00992"></a><span class="lineno">  992</span>                }</div>
<div class="line"><a id="l00993" name="l00993"></a><span class="lineno">  993</span> </div>
<div class="line"><a id="l00994" name="l00994"></a><span class="lineno">  994</span>                <span class="keywordflow">if</span> (Console.ForegroundColor != DefaultForeground &amp;&amp; Console.BackgroundColor != DefaultBackground)</div>
<div class="line"><a id="l00995" name="l00995"></a><span class="lineno">  995</span>                {</div>
<div class="line"><a id="l00996" name="l00996"></a><span class="lineno">  996</span>                    sb.Append(<span class="stringliteral">&quot;;&quot;</span>);</div>
<div class="line"><a id="l00997" name="l00997"></a><span class="lineno">  997</span>                }</div>
<div class="line"><a id="l00998" name="l00998"></a><span class="lineno">  998</span> </div>
<div class="line"><a id="l00999" name="l00999"></a><span class="lineno">  999</span>                <span class="keywordflow">if</span> (Console.BackgroundColor != DefaultBackground)</div>
<div class="line"><a id="l01000" name="l01000"></a><span class="lineno"> 1000</span>                {</div>
<div class="line"><a id="l01001" name="l01001"></a><span class="lineno"> 1001</span>                    sb.Append(<span class="stringliteral">&quot;49&quot;</span>);</div>
<div class="line"><a id="l01002" name="l01002"></a><span class="lineno"> 1002</span>                }</div>
<div class="line"><a id="l01003" name="l01003"></a><span class="lineno"> 1003</span> </div>
<div class="line"><a id="l01004" name="l01004"></a><span class="lineno"> 1004</span>                <span class="keywordflow">if</span> (Console.ForegroundColor != DefaultForeground || Console.BackgroundColor != DefaultBackground)</div>
<div class="line"><a id="l01005" name="l01005"></a><span class="lineno"> 1005</span>                {</div>
<div class="line"><a id="l01006" name="l01006"></a><span class="lineno"> 1006</span>                    sb.Append(<span class="stringliteral">&quot;m&quot;</span>);</div>
<div class="line"><a id="l01007" name="l01007"></a><span class="lineno"> 1007</span>                }</div>
<div class="line"><a id="l01008" name="l01008"></a><span class="lineno"> 1008</span> </div>
<div class="line"><a id="l01009" name="l01009"></a><span class="lineno"> 1009</span>                NativeMethods.WriteToFileDescriptor(FileDescriptor, sb.ToString(), sb.Length);</div>
<div class="line"><a id="l01010" name="l01010"></a><span class="lineno"> 1010</span>            }</div>
<div class="line"><a id="l01011" name="l01011"></a><span class="lineno"> 1011</span> </div>
<div class="line"><a id="l01012" name="l01012"></a><span class="lineno"> 1012</span>            <span class="keyword">public</span> <span class="keyword">override</span> <span class="keywordtype">void</span> Write(<span class="keywordtype">char</span> value)</div>
<div class="line"><a id="l01013" name="l01013"></a><span class="lineno"> 1013</span>            {</div>
<div class="line"><a id="l01014" name="l01014"></a><span class="lineno"> 1014</span>                Write(value.ToString());</div>
<div class="line"><a id="l01015" name="l01015"></a><span class="lineno"> 1015</span>            }</div>
<div class="line"><a id="l01016" name="l01016"></a><span class="lineno"> 1016</span> </div>
<div class="line"><a id="l01017" name="l01017"></a><span class="lineno"> 1017</span>            <span class="keyword">public</span> <span class="keyword">override</span> <span class="keywordtype">void</span> Write(<span class="keywordtype">char</span>[] buffer)</div>
<div class="line"><a id="l01018" name="l01018"></a><span class="lineno"> 1018</span>            {</div>
<div class="line"><a id="l01019" name="l01019"></a><span class="lineno"> 1019</span>                Write(<span class="keyword">new</span> <span class="keywordtype">string</span>(buffer));</div>
<div class="line"><a id="l01020" name="l01020"></a><span class="lineno"> 1020</span>            }</div>
<div class="line"><a id="l01021" name="l01021"></a><span class="lineno"> 1021</span> </div>
<div class="line"><a id="l01022" name="l01022"></a><span class="lineno"> 1022</span>            <span class="keyword">public</span> <span class="keyword">override</span> <span class="keywordtype">void</span> Write(<span class="keywordtype">char</span>[] buffer, <span class="keywordtype">int</span> index, <span class="keywordtype">int</span> count)</div>
<div class="line"><a id="l01023" name="l01023"></a><span class="lineno"> 1023</span>            {</div>
<div class="line"><a id="l01024" name="l01024"></a><span class="lineno"> 1024</span>                Write(<span class="keyword">new</span> <span class="keywordtype">string</span>(buffer, index, count));</div>
<div class="line"><a id="l01025" name="l01025"></a><span class="lineno"> 1025</span>            }</div>
<div class="line"><a id="l01026" name="l01026"></a><span class="lineno"> 1026</span> </div>
<div class="line"><a id="l01027" name="l01027"></a><span class="lineno"> 1027</span>            <span class="keyword">public</span> <span class="keyword">override</span> <span class="keywordtype">void</span> WriteLine(<span class="keywordtype">string</span> value)</div>
<div class="line"><a id="l01028" name="l01028"></a><span class="lineno"> 1028</span>            {</div>
<div class="line"><a id="l01029" name="l01029"></a><span class="lineno"> 1029</span>                Write(value);</div>
<div class="line"><a id="l01030" name="l01030"></a><span class="lineno"> 1030</span>                WriteLine();</div>
<div class="line"><a id="l01031" name="l01031"></a><span class="lineno"> 1031</span>            }</div>
<div class="line"><a id="l01032" name="l01032"></a><span class="lineno"> 1032</span>        }</div>
<div class="line"><a id="l01033" name="l01033"></a><span class="lineno"> 1033</span>    }</div>
<div class="line"><a id="l01034" name="l01034"></a><span class="lineno"> 1034</span><span class="comment"></span> </div>
<div class="line"><a id="l01035" name="l01035"></a><span class="lineno"> 1035</span><span class="comment">    /// &lt;summary&gt;</span></div>
<div class="line"><a id="l01036" name="l01036"></a><span class="lineno"> 1036</span><span class="comment">    /// Native methods.</span></div>
<div class="line"><a id="l01037" name="l01037"></a><span class="lineno"> 1037</span><span class="comment">    /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l01038" name="l01038"></a><span class="lineno"> 1038</span><span class="comment"></span>    <span class="keyword">internal</span> <span class="keyword">static</span> <span class="keyword">class </span>NativeMethods</div>
<div class="line"><a id="l01039" name="l01039"></a><span class="lineno"> 1039</span>    {<span class="comment"></span></div>
<div class="line"><a id="l01040" name="l01040"></a><span class="lineno"> 1040</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l01041" name="l01041"></a><span class="lineno"> 1041</span><span class="comment">        /// Create a MuPDF context object with the specified store size.</span></div>
<div class="line"><a id="l01042" name="l01042"></a><span class="lineno"> 1042</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l01043" name="l01043"></a><span class="lineno"> 1043</span><span class="comment">        /// &lt;param name=&quot;store_size&quot;&gt;Maximum size in bytes of the resource store.&lt;/param&gt;</span></div>
<div class="line"><a id="l01044" name="l01044"></a><span class="lineno"> 1044</span><span class="comment">        /// &lt;param name=&quot;out_ctx&quot;&gt;A pointer to the native context object.&lt;/param&gt;</span></div>
<div class="line"><a id="l01045" name="l01045"></a><span class="lineno"> 1045</span><span class="comment">        /// &lt;returns&gt;An integer equivalent to &lt;see cref=&quot;ExitCodes&quot;/&gt; detailing whether any errors occurred.&lt;/returns&gt;</span></div>
<div class="line"><a id="l01046" name="l01046"></a><span class="lineno"> 1046</span><span class="comment"></span>        [DllImport(<span class="stringliteral">&quot;MuPDFWrapper&quot;</span>, CallingConvention = CallingConvention.Cdecl)]</div>
<div class="line"><a id="l01047" name="l01047"></a><span class="lineno"> 1047</span>        <span class="keyword">internal</span> <span class="keyword">static</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> CreateContext(ulong store_size, ref IntPtr out_ctx);</div>
<div class="line"><a id="l01048" name="l01048"></a><span class="lineno"> 1048</span><span class="comment"></span> </div>
<div class="line"><a id="l01049" name="l01049"></a><span class="lineno"> 1049</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l01050" name="l01050"></a><span class="lineno"> 1050</span><span class="comment">        /// Free a context and its global store.</span></div>
<div class="line"><a id="l01051" name="l01051"></a><span class="lineno"> 1051</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l01052" name="l01052"></a><span class="lineno"> 1052</span><span class="comment">        /// &lt;param name=&quot;ctx&quot;&gt;A pointer to the native context to free.&lt;/param&gt;</span></div>
<div class="line"><a id="l01053" name="l01053"></a><span class="lineno"> 1053</span><span class="comment">        /// &lt;returns&gt;An integer equivalent to &lt;see cref=&quot;ExitCodes&quot;/&gt; detailing whether any errors occurred.&lt;/returns&gt;</span></div>
<div class="line"><a id="l01054" name="l01054"></a><span class="lineno"> 1054</span><span class="comment"></span>        [DllImport(<span class="stringliteral">&quot;MuPDFWrapper&quot;</span>, CallingConvention = CallingConvention.Cdecl)]</div>
<div class="line"><a id="l01055" name="l01055"></a><span class="lineno"> 1055</span>        <span class="keyword">internal</span> <span class="keyword">static</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> DisposeContext(IntPtr ctx);</div>
<div class="line"><a id="l01056" name="l01056"></a><span class="lineno"> 1056</span><span class="comment"></span> </div>
<div class="line"><a id="l01057" name="l01057"></a><span class="lineno"> 1057</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l01058" name="l01058"></a><span class="lineno"> 1058</span><span class="comment">        /// Evict items from the store until the total size of the objects in the store is reduced to a given percentage of its current size.</span></div>
<div class="line"><a id="l01059" name="l01059"></a><span class="lineno"> 1059</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l01060" name="l01060"></a><span class="lineno"> 1060</span><span class="comment">        /// &lt;param name=&quot;ctx&quot;&gt;The context whose store should be shrunk.&lt;/param&gt;</span></div>
<div class="line"><a id="l01061" name="l01061"></a><span class="lineno"> 1061</span><span class="comment">        /// &lt;param name=&quot;perc&quot;&gt;Fraction of current size to reduce the store to.&lt;/param&gt;</span></div>
<div class="line"><a id="l01062" name="l01062"></a><span class="lineno"> 1062</span><span class="comment">        /// &lt;returns&gt;An integer equivalent to &lt;see cref=&quot;ExitCodes&quot;/&gt; detailing whether any errors occurred.&lt;/returns&gt;</span></div>
<div class="line"><a id="l01063" name="l01063"></a><span class="lineno"> 1063</span><span class="comment"></span>        [DllImport(<span class="stringliteral">&quot;MuPDFWrapper&quot;</span>, CallingConvention = CallingConvention.Cdecl)]</div>
<div class="line"><a id="l01064" name="l01064"></a><span class="lineno"> 1064</span>        <span class="keyword">internal</span> <span class="keyword">static</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> ShrinkStore(IntPtr ctx, uint perc);</div>
<div class="line"><a id="l01065" name="l01065"></a><span class="lineno"> 1065</span><span class="comment"></span> </div>
<div class="line"><a id="l01066" name="l01066"></a><span class="lineno"> 1066</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l01067" name="l01067"></a><span class="lineno"> 1067</span><span class="comment">        /// Evict every item from the store.</span></div>
<div class="line"><a id="l01068" name="l01068"></a><span class="lineno"> 1068</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l01069" name="l01069"></a><span class="lineno"> 1069</span><span class="comment">        /// &lt;param name=&quot;ctx&quot;&gt;The context whose store should be emptied.&lt;/param&gt;</span></div>
<div class="line"><a id="l01070" name="l01070"></a><span class="lineno"> 1070</span><span class="comment">        /// &lt;returns&gt;An integer equivalent to &lt;see cref=&quot;ExitCodes&quot;/&gt; detailing whether any errors occurred.&lt;/returns&gt;</span></div>
<div class="line"><a id="l01071" name="l01071"></a><span class="lineno"> 1071</span><span class="comment"></span>        [DllImport(<span class="stringliteral">&quot;MuPDFWrapper&quot;</span>, CallingConvention = CallingConvention.Cdecl)]</div>
<div class="line"><a id="l01072" name="l01072"></a><span class="lineno"> 1072</span>        <span class="keyword">internal</span> <span class="keyword">static</span> <span class="keyword">extern</span> <span class="keywordtype">void</span> EmptyStore(IntPtr ctx);</div>
<div class="line"><a id="l01073" name="l01073"></a><span class="lineno"> 1073</span><span class="comment"></span> </div>
<div class="line"><a id="l01074" name="l01074"></a><span class="lineno"> 1074</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l01075" name="l01075"></a><span class="lineno"> 1075</span><span class="comment">        /// Get the current size of the store.</span></div>
<div class="line"><a id="l01076" name="l01076"></a><span class="lineno"> 1076</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l01077" name="l01077"></a><span class="lineno"> 1077</span><span class="comment">        /// &lt;param name=&quot;ctx&quot;&gt;The context whose store&#39;s size should be determined.&lt;/param&gt;</span></div>
<div class="line"><a id="l01078" name="l01078"></a><span class="lineno"> 1078</span><span class="comment">        /// &lt;returns&gt;The current size in bytes of the store.&lt;/returns&gt;</span></div>
<div class="line"><a id="l01079" name="l01079"></a><span class="lineno"> 1079</span><span class="comment"></span>        [DllImport(<span class="stringliteral">&quot;MuPDFWrapper&quot;</span>, CallingConvention = CallingConvention.Cdecl)]</div>
<div class="line"><a id="l01080" name="l01080"></a><span class="lineno"> 1080</span>        <span class="keyword">internal</span> <span class="keyword">static</span> <span class="keyword">extern</span> ulong GetCurrentStoreSize(IntPtr ctx);</div>
<div class="line"><a id="l01081" name="l01081"></a><span class="lineno"> 1081</span><span class="comment"></span> </div>
<div class="line"><a id="l01082" name="l01082"></a><span class="lineno"> 1082</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l01083" name="l01083"></a><span class="lineno"> 1083</span><span class="comment">        /// Get the maximum size of the store.</span></div>
<div class="line"><a id="l01084" name="l01084"></a><span class="lineno"> 1084</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l01085" name="l01085"></a><span class="lineno"> 1085</span><span class="comment">        /// &lt;param name=&quot;ctx&quot;&gt;The context whose store&#39;s maximum size should be determined.&lt;/param&gt;</span></div>
<div class="line"><a id="l01086" name="l01086"></a><span class="lineno"> 1086</span><span class="comment">        /// &lt;returns&gt;The maximum size in bytes of the store.&lt;/returns&gt;</span></div>
<div class="line"><a id="l01087" name="l01087"></a><span class="lineno"> 1087</span><span class="comment"></span>        [DllImport(<span class="stringliteral">&quot;MuPDFWrapper&quot;</span>, CallingConvention = CallingConvention.Cdecl)]</div>
<div class="line"><a id="l01088" name="l01088"></a><span class="lineno"> 1088</span>        <span class="keyword">internal</span> <span class="keyword">static</span> <span class="keyword">extern</span> ulong GetMaxStoreSize(IntPtr ctx);</div>
<div class="line"><a id="l01089" name="l01089"></a><span class="lineno"> 1089</span><span class="comment"></span> </div>
<div class="line"><a id="l01090" name="l01090"></a><span class="lineno"> 1090</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l01091" name="l01091"></a><span class="lineno"> 1091</span><span class="comment">        /// Create a display list from a page.</span></div>
<div class="line"><a id="l01092" name="l01092"></a><span class="lineno"> 1092</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l01093" name="l01093"></a><span class="lineno"> 1093</span><span class="comment">        /// &lt;param name=&quot;ctx&quot;&gt;A pointer to the context used to create the document.&lt;/param&gt;</span></div>
<div class="line"><a id="l01094" name="l01094"></a><span class="lineno"> 1094</span><span class="comment">        /// &lt;param name=&quot;page&quot;&gt;A pointer to the page that should be used to create the display list.&lt;/param&gt;</span></div>
<div class="line"><a id="l01095" name="l01095"></a><span class="lineno"> 1095</span><span class="comment">        /// &lt;param name=&quot;annotations&quot;&gt;An integer indicating whether annotations should be included in the display list (1) or not (any other value).&lt;/param&gt;</span></div>
<div class="line"><a id="l01096" name="l01096"></a><span class="lineno"> 1096</span><span class="comment">        /// &lt;param name=&quot;out_display_list&quot;&gt;A pointer to the newly-created display list.&lt;/param&gt;</span></div>
<div class="line"><a id="l01097" name="l01097"></a><span class="lineno"> 1097</span><span class="comment">        /// &lt;param name=&quot;out_x0&quot;&gt;The left coordinate of the display list&#39;s bounds.&lt;/param&gt;</span></div>
<div class="line"><a id="l01098" name="l01098"></a><span class="lineno"> 1098</span><span class="comment">        /// &lt;param name=&quot;out_y0&quot;&gt;The top coordinate of the display list&#39;s bounds.&lt;/param&gt;</span></div>
<div class="line"><a id="l01099" name="l01099"></a><span class="lineno"> 1099</span><span class="comment">        /// &lt;param name=&quot;out_x1&quot;&gt;The right coordinate of the display list&#39;s bounds.&lt;/param&gt;</span></div>
<div class="line"><a id="l01100" name="l01100"></a><span class="lineno"> 1100</span><span class="comment">        /// &lt;param name=&quot;out_y1&quot;&gt;The bottom coordinate of the display list&#39;s bounds.&lt;/param&gt;</span></div>
<div class="line"><a id="l01101" name="l01101"></a><span class="lineno"> 1101</span><span class="comment">        /// &lt;returns&gt;An integer equivalent to &lt;see cref=&quot;ExitCodes&quot;/&gt; detailing whether any errors occurred.&lt;/returns&gt;</span></div>
<div class="line"><a id="l01102" name="l01102"></a><span class="lineno"> 1102</span><span class="comment"></span>        [DllImport(<span class="stringliteral">&quot;MuPDFWrapper&quot;</span>, CallingConvention = CallingConvention.Cdecl)]</div>
<div class="line"><a id="l01103" name="l01103"></a><span class="lineno"> 1103</span>        <span class="keyword">internal</span> <span class="keyword">static</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> GetDisplayList(IntPtr ctx, IntPtr page, <span class="keywordtype">int</span> annotations, ref IntPtr out_display_list, ref <span class="keywordtype">float</span> out_x0, ref <span class="keywordtype">float</span> out_y0, ref <span class="keywordtype">float</span> out_x1, ref <span class="keywordtype">float</span> out_y1);</div>
<div class="line"><a id="l01104" name="l01104"></a><span class="lineno"> 1104</span><span class="comment"></span> </div>
<div class="line"><a id="l01105" name="l01105"></a><span class="lineno"> 1105</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l01106" name="l01106"></a><span class="lineno"> 1106</span><span class="comment">        /// Free a display list.</span></div>
<div class="line"><a id="l01107" name="l01107"></a><span class="lineno"> 1107</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l01108" name="l01108"></a><span class="lineno"> 1108</span><span class="comment">        /// &lt;param name=&quot;ctx&quot;&gt;The context that was used to create the display list.&lt;/param&gt;</span></div>
<div class="line"><a id="l01109" name="l01109"></a><span class="lineno"> 1109</span><span class="comment">        /// &lt;param name=&quot;list&quot;&gt;The display list to dispose.&lt;/param&gt;</span></div>
<div class="line"><a id="l01110" name="l01110"></a><span class="lineno"> 1110</span><span class="comment">        /// &lt;returns&gt;An integer equivalent to &lt;see cref=&quot;ExitCodes&quot;/&gt; detailing whether any errors occurred.&lt;/returns&gt;</span></div>
<div class="line"><a id="l01111" name="l01111"></a><span class="lineno"> 1111</span><span class="comment"></span>        [DllImport(<span class="stringliteral">&quot;MuPDFWrapper&quot;</span>, CallingConvention = CallingConvention.Cdecl)]</div>
<div class="line"><a id="l01112" name="l01112"></a><span class="lineno"> 1112</span>        <span class="keyword">internal</span> <span class="keyword">static</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> DisposeDisplayList(IntPtr ctx, IntPtr list);</div>
<div class="line"><a id="l01113" name="l01113"></a><span class="lineno"> 1113</span><span class="comment"></span> </div>
<div class="line"><a id="l01114" name="l01114"></a><span class="lineno"> 1114</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l01115" name="l01115"></a><span class="lineno"> 1115</span><span class="comment">        /// Create a new document from a stream.</span></div>
<div class="line"><a id="l01116" name="l01116"></a><span class="lineno"> 1116</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l01117" name="l01117"></a><span class="lineno"> 1117</span><span class="comment">        /// &lt;param name=&quot;ctx&quot;&gt;The context to which the document will belong.&lt;/param&gt;</span></div>
<div class="line"><a id="l01118" name="l01118"></a><span class="lineno"> 1118</span><span class="comment">        /// &lt;param name=&quot;data&quot;&gt;A pointer to a byte array containing the data that makes up the document.&lt;/param&gt;</span></div>
<div class="line"><a id="l01119" name="l01119"></a><span class="lineno"> 1119</span><span class="comment">        /// &lt;param name=&quot;data_length&quot;&gt;The length in bytes of the data that makes up the document.&lt;/param&gt;</span></div>
<div class="line"><a id="l01120" name="l01120"></a><span class="lineno"> 1120</span><span class="comment">        /// &lt;param name=&quot;file_type&quot;&gt;The type (extension) of the document.&lt;/param&gt;</span></div>
<div class="line"><a id="l01121" name="l01121"></a><span class="lineno"> 1121</span><span class="comment">        /// &lt;param name=&quot;get_image_resolution&quot;&gt;If this is not 0, try opening the stream as an image and return the actual resolution (in DPI) of the image. Otherwise (or if trying to open the stream as an image fails), the returned resolution will be -1.&lt;/param&gt;</span></div>
<div class="line"><a id="l01122" name="l01122"></a><span class="lineno"> 1122</span><span class="comment">        /// &lt;param name=&quot;out_doc&quot;&gt;The newly created document.&lt;/param&gt;</span></div>
<div class="line"><a id="l01123" name="l01123"></a><span class="lineno"> 1123</span><span class="comment">        /// &lt;param name=&quot;out_str&quot;&gt;The newly created stream (so that it can be disposed later).&lt;/param&gt;</span></div>
<div class="line"><a id="l01124" name="l01124"></a><span class="lineno"> 1124</span><span class="comment">        /// &lt;param name=&quot;out_page_count&quot;&gt;The number of pages in the document.&lt;/param&gt;</span></div>
<div class="line"><a id="l01125" name="l01125"></a><span class="lineno"> 1125</span><span class="comment">        /// &lt;param name=&quot;out_image_xres&quot;&gt;If the document is an image file, the horizontal resolution of the image.&lt;/param&gt;</span></div>
<div class="line"><a id="l01126" name="l01126"></a><span class="lineno"> 1126</span><span class="comment">        /// &lt;param name=&quot;out_image_yres&quot;&gt;If the document is an image file, the vertical resolution of the image.&lt;/param&gt;</span></div>
<div class="line"><a id="l01127" name="l01127"></a><span class="lineno"> 1127</span><span class="comment">        /// &lt;returns&gt;An integer equivalent to &lt;see cref=&quot;ExitCodes&quot;/&gt; detailing whether any errors occurred.&lt;/returns&gt;</span></div>
<div class="line"><a id="l01128" name="l01128"></a><span class="lineno"> 1128</span><span class="comment"></span>        [DllImport(<span class="stringliteral">&quot;MuPDFWrapper&quot;</span>, CallingConvention = CallingConvention.Cdecl)]</div>
<div class="line"><a id="l01129" name="l01129"></a><span class="lineno"> 1129</span>        <span class="keyword">internal</span> <span class="keyword">static</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> CreateDocumentFromStream(IntPtr ctx, IntPtr data, ulong data_length, <span class="keywordtype">string</span> file_type, <span class="keywordtype">int</span> get_image_resolution, ref IntPtr out_doc, ref IntPtr out_str, ref <span class="keywordtype">int</span> out_page_count, ref <span class="keywordtype">float</span> out_image_xres, ref <span class="keywordtype">float</span> out_image_yres);</div>
<div class="line"><a id="l01130" name="l01130"></a><span class="lineno"> 1130</span><span class="comment"></span> </div>
<div class="line"><a id="l01131" name="l01131"></a><span class="lineno"> 1131</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l01132" name="l01132"></a><span class="lineno"> 1132</span><span class="comment">        /// Create a new document from a file name.</span></div>
<div class="line"><a id="l01133" name="l01133"></a><span class="lineno"> 1133</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l01134" name="l01134"></a><span class="lineno"> 1134</span><span class="comment">        /// &lt;param name=&quot;ctx&quot;&gt;The context to which the document will belong.&lt;/param&gt;</span></div>
<div class="line"><a id="l01135" name="l01135"></a><span class="lineno"> 1135</span><span class="comment">        /// &lt;param name=&quot;file_name&quot;&gt;The path of the file to open, UTF-8 encoded.&lt;/param&gt;</span></div>
<div class="line"><a id="l01136" name="l01136"></a><span class="lineno"> 1136</span><span class="comment">        /// &lt;param name=&quot;get_image_resolution&quot;&gt;If this is not 0, try opening the file as an image and return the actual resolution (in DPI) of the image. Otherwise (or if trying to open the file as an image fails), the returned resolution will be -1.&lt;/param&gt;</span></div>
<div class="line"><a id="l01137" name="l01137"></a><span class="lineno"> 1137</span><span class="comment">        /// &lt;param name=&quot;out_doc&quot;&gt;The newly created document.&lt;/param&gt;</span></div>
<div class="line"><a id="l01138" name="l01138"></a><span class="lineno"> 1138</span><span class="comment">        /// &lt;param name=&quot;out_page_count&quot;&gt;The number of pages in the document.&lt;/param&gt;</span></div>
<div class="line"><a id="l01139" name="l01139"></a><span class="lineno"> 1139</span><span class="comment">        /// &lt;returns&gt;An integer equivalent to &lt;see cref=&quot;ExitCodes&quot;/&gt; detailing whether any errors occurred.&lt;/returns&gt;</span></div>
<div class="line"><a id="l01140" name="l01140"></a><span class="lineno"> 1140</span><span class="comment">        /// &lt;param name=&quot;out_image_xres&quot;&gt;If the document is an image file, the horizontal resolution of the image.&lt;/param&gt;</span></div>
<div class="line"><a id="l01141" name="l01141"></a><span class="lineno"> 1141</span><span class="comment">        /// &lt;param name=&quot;out_image_yres&quot;&gt;If the document is an image file, the vertical resolution of the image.&lt;/param&gt;</span></div>
<div class="line"><a id="l01142" name="l01142"></a><span class="lineno"> 1142</span><span class="comment"></span>        [DllImport(<span class="stringliteral">&quot;MuPDFWrapper&quot;</span>, CallingConvention = CallingConvention.Cdecl)]</div>
<div class="line"><a id="l01143" name="l01143"></a><span class="lineno"> 1143</span>        <span class="keyword">internal</span> <span class="keyword">static</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> CreateDocumentFromFile(IntPtr ctx, IntPtr file_name, <span class="keywordtype">int</span> get_image_resolution, ref IntPtr out_doc, ref <span class="keywordtype">int</span> out_page_count, ref <span class="keywordtype">float</span> out_image_xres, ref <span class="keywordtype">float</span> out_image_yres);</div>
<div class="line"><a id="l01144" name="l01144"></a><span class="lineno"> 1144</span><span class="comment"></span> </div>
<div class="line"><a id="l01145" name="l01145"></a><span class="lineno"> 1145</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l01146" name="l01146"></a><span class="lineno"> 1146</span><span class="comment">        /// Free a stream and its associated resources.</span></div>
<div class="line"><a id="l01147" name="l01147"></a><span class="lineno"> 1147</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l01148" name="l01148"></a><span class="lineno"> 1148</span><span class="comment">        /// &lt;param name=&quot;ctx&quot;&gt;The context that was used while creating the stream.&lt;/param&gt;</span></div>
<div class="line"><a id="l01149" name="l01149"></a><span class="lineno"> 1149</span><span class="comment">        /// &lt;param name=&quot;str&quot;&gt;The stream to free.&lt;/param&gt;</span></div>
<div class="line"><a id="l01150" name="l01150"></a><span class="lineno"> 1150</span><span class="comment">        /// &lt;returns&gt;An integer equivalent to &lt;see cref=&quot;ExitCodes&quot;/&gt; detailing whether any errors occurred.&lt;/returns&gt;</span></div>
<div class="line"><a id="l01151" name="l01151"></a><span class="lineno"> 1151</span><span class="comment"></span>        [DllImport(<span class="stringliteral">&quot;MuPDFWrapper&quot;</span>, CallingConvention = CallingConvention.Cdecl)]</div>
<div class="line"><a id="l01152" name="l01152"></a><span class="lineno"> 1152</span>        <span class="keyword">internal</span> <span class="keyword">static</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> DisposeStream(IntPtr ctx, IntPtr str);</div>
<div class="line"><a id="l01153" name="l01153"></a><span class="lineno"> 1153</span><span class="comment"></span> </div>
<div class="line"><a id="l01154" name="l01154"></a><span class="lineno"> 1154</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l01155" name="l01155"></a><span class="lineno"> 1155</span><span class="comment">        /// Free a document and its associated resources.</span></div>
<div class="line"><a id="l01156" name="l01156"></a><span class="lineno"> 1156</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l01157" name="l01157"></a><span class="lineno"> 1157</span><span class="comment">        /// &lt;param name=&quot;ctx&quot;&gt;The context that was used in creating the document.&lt;/param&gt;</span></div>
<div class="line"><a id="l01158" name="l01158"></a><span class="lineno"> 1158</span><span class="comment">        /// &lt;param name=&quot;doc&quot;&gt;The document to free.&lt;/param&gt;</span></div>
<div class="line"><a id="l01159" name="l01159"></a><span class="lineno"> 1159</span><span class="comment">        /// &lt;returns&gt;An integer equivalent to &lt;see cref=&quot;ExitCodes&quot;/&gt; detailing whether any errors occurred.&lt;/returns&gt;</span></div>
<div class="line"><a id="l01160" name="l01160"></a><span class="lineno"> 1160</span><span class="comment"></span>        [DllImport(<span class="stringliteral">&quot;MuPDFWrapper&quot;</span>, CallingConvention = CallingConvention.Cdecl)]</div>
<div class="line"><a id="l01161" name="l01161"></a><span class="lineno"> 1161</span>        <span class="keyword">internal</span> <span class="keyword">static</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> DisposeDocument(IntPtr ctx, IntPtr doc);</div>
<div class="line"><a id="l01162" name="l01162"></a><span class="lineno"> 1162</span><span class="comment"></span> </div>
<div class="line"><a id="l01163" name="l01163"></a><span class="lineno"> 1163</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l01164" name="l01164"></a><span class="lineno"> 1164</span><span class="comment">        /// Render (part of) a display list to an array of bytes starting at the specified pointer.</span></div>
<div class="line"><a id="l01165" name="l01165"></a><span class="lineno"> 1165</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l01166" name="l01166"></a><span class="lineno"> 1166</span><span class="comment">        /// &lt;param name=&quot;ctx&quot;&gt;A context to hold the exception stack and the cached resources.&lt;/param&gt;</span></div>
<div class="line"><a id="l01167" name="l01167"></a><span class="lineno"> 1167</span><span class="comment">        /// &lt;param name=&quot;list&quot;&gt;The display list to render.&lt;/param&gt;</span></div>
<div class="line"><a id="l01168" name="l01168"></a><span class="lineno"> 1168</span><span class="comment">        /// &lt;param name=&quot;x0&quot;&gt;The left coordinate in page units of the region of the display list that should be rendererd.&lt;/param&gt;</span></div>
<div class="line"><a id="l01169" name="l01169"></a><span class="lineno"> 1169</span><span class="comment">        /// &lt;param name=&quot;y0&quot;&gt;The top coordinate in page units of the region of the display list that should be rendererd.&lt;/param&gt;</span></div>
<div class="line"><a id="l01170" name="l01170"></a><span class="lineno"> 1170</span><span class="comment">        /// &lt;param name=&quot;x1&quot;&gt;The right coordinate in page units of the region of the display list that should be rendererd.&lt;/param&gt;</span></div>
<div class="line"><a id="l01171" name="l01171"></a><span class="lineno"> 1171</span><span class="comment">        /// &lt;param name=&quot;y1&quot;&gt;The bottom coordinate in page units of the region of the display list that should be rendererd.&lt;/param&gt;</span></div>
<div class="line"><a id="l01172" name="l01172"></a><span class="lineno"> 1172</span><span class="comment">        /// &lt;param name=&quot;zoom&quot;&gt;How much the specified region should be scaled when rendering. This determines the size in pixels of the rendered image.&lt;/param&gt;</span></div>
<div class="line"><a id="l01173" name="l01173"></a><span class="lineno"> 1173</span><span class="comment">        /// &lt;param name=&quot;colorFormat&quot;&gt;The pixel data format.&lt;/param&gt;</span></div>
<div class="line"><a id="l01174" name="l01174"></a><span class="lineno"> 1174</span><span class="comment">        /// &lt;param name=&quot;pixel_storage&quot;&gt;A pointer indicating where the pixel bytes will be written. There must be enough space available!&lt;/param&gt;</span></div>
<div class="line"><a id="l01175" name="l01175"></a><span class="lineno"> 1175</span><span class="comment">        /// &lt;param name=&quot;cookie&quot;&gt;A pointer to a cookie object that can be used to track progress and/or abort rendering. Can be null.&lt;/param&gt;</span></div>
<div class="line"><a id="l01176" name="l01176"></a><span class="lineno"> 1176</span><span class="comment">        /// &lt;returns&gt;An integer equivalent to &lt;see cref=&quot;ExitCodes&quot;/&gt; detailing whether any errors occurred.&lt;/returns&gt;</span></div>
<div class="line"><a id="l01177" name="l01177"></a><span class="lineno"> 1177</span><span class="comment"></span>        [DllImport(<span class="stringliteral">&quot;MuPDFWrapper&quot;</span>, CallingConvention = CallingConvention.Cdecl)]</div>
<div class="line"><a id="l01178" name="l01178"></a><span class="lineno"> 1178</span>        <span class="keyword">internal</span> <span class="keyword">static</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> RenderSubDisplayList(IntPtr ctx, IntPtr list, <span class="keywordtype">float</span> x0, <span class="keywordtype">float</span> y0, <span class="keywordtype">float</span> x1, <span class="keywordtype">float</span> y1, <span class="keywordtype">float</span> zoom, <span class="keywordtype">int</span> colorFormat, IntPtr pixel_storage, IntPtr cookie);</div>
<div class="line"><a id="l01179" name="l01179"></a><span class="lineno"> 1179</span><span class="comment"></span> </div>
<div class="line"><a id="l01180" name="l01180"></a><span class="lineno"> 1180</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l01181" name="l01181"></a><span class="lineno"> 1181</span><span class="comment">        /// Load a page from a document.</span></div>
<div class="line"><a id="l01182" name="l01182"></a><span class="lineno"> 1182</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l01183" name="l01183"></a><span class="lineno"> 1183</span><span class="comment">        /// &lt;param name=&quot;ctx&quot;&gt;The context to which the document belongs.&lt;/param&gt;</span></div>
<div class="line"><a id="l01184" name="l01184"></a><span class="lineno"> 1184</span><span class="comment">        /// &lt;param name=&quot;doc&quot;&gt;The document from which the page should be extracted.&lt;/param&gt;</span></div>
<div class="line"><a id="l01185" name="l01185"></a><span class="lineno"> 1185</span><span class="comment">        /// &lt;param name=&quot;page_number&quot;&gt;The page number.&lt;/param&gt;</span></div>
<div class="line"><a id="l01186" name="l01186"></a><span class="lineno"> 1186</span><span class="comment">        /// &lt;param name=&quot;out_page&quot;&gt;The newly extracted page.&lt;/param&gt;</span></div>
<div class="line"><a id="l01187" name="l01187"></a><span class="lineno"> 1187</span><span class="comment">        /// &lt;param name=&quot;out_x&quot;&gt;The left coordinate of the page&#39;s bounds.&lt;/param&gt;</span></div>
<div class="line"><a id="l01188" name="l01188"></a><span class="lineno"> 1188</span><span class="comment">        /// &lt;param name=&quot;out_y&quot;&gt;The top coordinate of the page&#39;s bounds.&lt;/param&gt;</span></div>
<div class="line"><a id="l01189" name="l01189"></a><span class="lineno"> 1189</span><span class="comment">        /// &lt;param name=&quot;out_w&quot;&gt;The width of the page.&lt;/param&gt;</span></div>
<div class="line"><a id="l01190" name="l01190"></a><span class="lineno"> 1190</span><span class="comment">        /// &lt;param name=&quot;out_h&quot;&gt;The height of the page.&lt;/param&gt;</span></div>
<div class="line"><a id="l01191" name="l01191"></a><span class="lineno"> 1191</span><span class="comment">        /// &lt;returns&gt;An integer equivalent to &lt;see cref=&quot;ExitCodes&quot;/&gt; detailing whether any errors occurred.&lt;/returns&gt;</span></div>
<div class="line"><a id="l01192" name="l01192"></a><span class="lineno"> 1192</span><span class="comment"></span>        [DllImport(<span class="stringliteral">&quot;MuPDFWrapper&quot;</span>, CallingConvention = CallingConvention.Cdecl)]</div>
<div class="line"><a id="l01193" name="l01193"></a><span class="lineno"> 1193</span>        <span class="keyword">internal</span> <span class="keyword">static</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> LoadPage(IntPtr ctx, IntPtr doc, <span class="keywordtype">int</span> page_number, ref IntPtr out_page, ref <span class="keywordtype">float</span> out_x, ref <span class="keywordtype">float</span> out_y, ref <span class="keywordtype">float</span> out_w, ref <span class="keywordtype">float</span> out_h);</div>
<div class="line"><a id="l01194" name="l01194"></a><span class="lineno"> 1194</span><span class="comment"></span> </div>
<div class="line"><a id="l01195" name="l01195"></a><span class="lineno"> 1195</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l01196" name="l01196"></a><span class="lineno"> 1196</span><span class="comment">        /// Free a page and its associated resources.</span></div>
<div class="line"><a id="l01197" name="l01197"></a><span class="lineno"> 1197</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l01198" name="l01198"></a><span class="lineno"> 1198</span><span class="comment">        /// &lt;param name=&quot;ctx&quot;&gt;The context to which the document containing the page belongs.&lt;/param&gt;</span></div>
<div class="line"><a id="l01199" name="l01199"></a><span class="lineno"> 1199</span><span class="comment">        /// &lt;param name=&quot;page&quot;&gt;The page to free.&lt;/param&gt;</span></div>
<div class="line"><a id="l01200" name="l01200"></a><span class="lineno"> 1200</span><span class="comment">        /// &lt;returns&gt;An integer equivalent to &lt;see cref=&quot;ExitCodes&quot;/&gt; detailing whether any errors occurred.&lt;/returns&gt;</span></div>
<div class="line"><a id="l01201" name="l01201"></a><span class="lineno"> 1201</span><span class="comment"></span>        [DllImport(<span class="stringliteral">&quot;MuPDFWrapper&quot;</span>, CallingConvention = CallingConvention.Cdecl)]</div>
<div class="line"><a id="l01202" name="l01202"></a><span class="lineno"> 1202</span>        <span class="keyword">internal</span> <span class="keyword">static</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> DisposePage(IntPtr ctx, IntPtr page);</div>
<div class="line"><a id="l01203" name="l01203"></a><span class="lineno"> 1203</span><span class="comment"></span> </div>
<div class="line"><a id="l01204" name="l01204"></a><span class="lineno"> 1204</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l01205" name="l01205"></a><span class="lineno"> 1205</span><span class="comment">        /// Create cloned contexts that can be used in multithreaded rendering.</span></div>
<div class="line"><a id="l01206" name="l01206"></a><span class="lineno"> 1206</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l01207" name="l01207"></a><span class="lineno"> 1207</span><span class="comment">        /// &lt;param name=&quot;ctx&quot;&gt;The original context to clone.&lt;/param&gt;</span></div>
<div class="line"><a id="l01208" name="l01208"></a><span class="lineno"> 1208</span><span class="comment">        /// &lt;param name=&quot;count&quot;&gt;The number of cloned contexts to create.&lt;/param&gt;</span></div>
<div class="line"><a id="l01209" name="l01209"></a><span class="lineno"> 1209</span><span class="comment">        /// &lt;param name=&quot;out_contexts&quot;&gt;An array of pointers to the cloned contexts.&lt;/param&gt;</span></div>
<div class="line"><a id="l01210" name="l01210"></a><span class="lineno"> 1210</span><span class="comment">        /// &lt;returns&gt;An integer equivalent to &lt;see cref=&quot;ExitCodes&quot;/&gt; detailing whether any errors occurred.&lt;/returns&gt;</span></div>
<div class="line"><a id="l01211" name="l01211"></a><span class="lineno"> 1211</span><span class="comment"></span>        [DllImport(<span class="stringliteral">&quot;MuPDFWrapper&quot;</span>, CallingConvention = CallingConvention.Cdecl)]</div>
<div class="line"><a id="l01212" name="l01212"></a><span class="lineno"> 1212</span>        <span class="keyword">internal</span> <span class="keyword">static</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> CloneContext(IntPtr ctx, <span class="keywordtype">int</span> count, IntPtr out_contexts);</div>
<div class="line"><a id="l01213" name="l01213"></a><span class="lineno"> 1213</span><span class="comment"></span> </div>
<div class="line"><a id="l01214" name="l01214"></a><span class="lineno"> 1214</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l01215" name="l01215"></a><span class="lineno"> 1215</span><span class="comment">        /// Save (part of) a display list to an image file in the specified format.</span></div>
<div class="line"><a id="l01216" name="l01216"></a><span class="lineno"> 1216</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l01217" name="l01217"></a><span class="lineno"> 1217</span><span class="comment">        /// &lt;param name=&quot;ctx&quot;&gt;A context to hold the exception stack and the cached resources.&lt;/param&gt;</span></div>
<div class="line"><a id="l01218" name="l01218"></a><span class="lineno"> 1218</span><span class="comment">        /// &lt;param name=&quot;list&quot;&gt;The display list to render.&lt;/param&gt;</span></div>
<div class="line"><a id="l01219" name="l01219"></a><span class="lineno"> 1219</span><span class="comment">        /// &lt;param name=&quot;x0&quot;&gt;The left coordinate in page units of the region of the display list that should be rendererd.&lt;/param&gt;</span></div>
<div class="line"><a id="l01220" name="l01220"></a><span class="lineno"> 1220</span><span class="comment">        /// &lt;param name=&quot;y0&quot;&gt;The top coordinate in page units of the region of the display list that should be rendererd.&lt;/param&gt;</span></div>
<div class="line"><a id="l01221" name="l01221"></a><span class="lineno"> 1221</span><span class="comment">        /// &lt;param name=&quot;x1&quot;&gt;The right coordinate in page units of the region of the display list that should be rendererd.&lt;/param&gt;</span></div>
<div class="line"><a id="l01222" name="l01222"></a><span class="lineno"> 1222</span><span class="comment">        /// &lt;param name=&quot;y1&quot;&gt;The bottom coordinate in page units of the region of the display list that should be rendererd.&lt;/param&gt;</span></div>
<div class="line"><a id="l01223" name="l01223"></a><span class="lineno"> 1223</span><span class="comment">        /// &lt;param name=&quot;zoom&quot;&gt;How much the specified region should be scaled when rendering. This determines the size in pixels of the rendered image.&lt;/param&gt;</span></div>
<div class="line"><a id="l01224" name="l01224"></a><span class="lineno"> 1224</span><span class="comment">        /// &lt;param name=&quot;colorFormat&quot;&gt;The pixel data format.&lt;/param&gt;</span></div>
<div class="line"><a id="l01225" name="l01225"></a><span class="lineno"> 1225</span><span class="comment">        /// &lt;param name=&quot;file_name&quot;&gt;The path to the output file, UTF-8 encoded.&lt;/param&gt;</span></div>
<div class="line"><a id="l01226" name="l01226"></a><span class="lineno"> 1226</span><span class="comment">        /// &lt;param name=&quot;output_format&quot;&gt;An integer equivalent to &lt;see cref=&quot;RasterOutputFileTypes&quot;/&gt; specifying the output format.&lt;/param&gt;</span></div>
<div class="line"><a id="l01227" name="l01227"></a><span class="lineno"> 1227</span><span class="comment">        /// &lt;returns&gt;An integer equivalent to &lt;see cref=&quot;ExitCodes&quot;/&gt; detailing whether any errors occurred.&lt;/returns&gt;</span></div>
<div class="line"><a id="l01228" name="l01228"></a><span class="lineno"> 1228</span><span class="comment"></span>        [DllImport(<span class="stringliteral">&quot;MuPDFWrapper&quot;</span>, CallingConvention = CallingConvention.Cdecl)]</div>
<div class="line"><a id="l01229" name="l01229"></a><span class="lineno"> 1229</span>        <span class="keyword">internal</span> <span class="keyword">static</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> SaveImage(IntPtr ctx, IntPtr list, <span class="keywordtype">float</span> x0, <span class="keywordtype">float</span> y0, <span class="keywordtype">float</span> x1, <span class="keywordtype">float</span> y1, <span class="keywordtype">float</span> zoom, <span class="keywordtype">int</span> colorFormat, IntPtr file_name, <span class="keywordtype">int</span> output_format);</div>
<div class="line"><a id="l01230" name="l01230"></a><span class="lineno"> 1230</span><span class="comment"></span> </div>
<div class="line"><a id="l01231" name="l01231"></a><span class="lineno"> 1231</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l01232" name="l01232"></a><span class="lineno"> 1232</span><span class="comment">        /// Write (part of) a display list to an image buffer in the specified format.</span></div>
<div class="line"><a id="l01233" name="l01233"></a><span class="lineno"> 1233</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l01234" name="l01234"></a><span class="lineno"> 1234</span><span class="comment">        /// &lt;param name=&quot;ctx&quot;&gt;A context to hold the exception stack and the cached resources.&lt;/param&gt;</span></div>
<div class="line"><a id="l01235" name="l01235"></a><span class="lineno"> 1235</span><span class="comment">        /// &lt;param name=&quot;list&quot;&gt;The display list to render.&lt;/param&gt;</span></div>
<div class="line"><a id="l01236" name="l01236"></a><span class="lineno"> 1236</span><span class="comment">        /// &lt;param name=&quot;x0&quot;&gt;The left coordinate in page units of the region of the display list that should be rendererd.&lt;/param&gt;</span></div>
<div class="line"><a id="l01237" name="l01237"></a><span class="lineno"> 1237</span><span class="comment">        /// &lt;param name=&quot;y0&quot;&gt;The top coordinate in page units of the region of the display list that should be rendererd.&lt;/param&gt;</span></div>
<div class="line"><a id="l01238" name="l01238"></a><span class="lineno"> 1238</span><span class="comment">        /// &lt;param name=&quot;x1&quot;&gt;The right coordinate in page units of the region of the display list that should be rendererd.&lt;/param&gt;</span></div>
<div class="line"><a id="l01239" name="l01239"></a><span class="lineno"> 1239</span><span class="comment">        /// &lt;param name=&quot;y1&quot;&gt;The bottom coordinate in page units of the region of the display list that should be rendererd.&lt;/param&gt;</span></div>
<div class="line"><a id="l01240" name="l01240"></a><span class="lineno"> 1240</span><span class="comment">        /// &lt;param name=&quot;zoom&quot;&gt;How much the specified region should be scaled when rendering. This determines the size in pixels of the rendered image.&lt;/param&gt;</span></div>
<div class="line"><a id="l01241" name="l01241"></a><span class="lineno"> 1241</span><span class="comment">        /// &lt;param name=&quot;colorFormat&quot;&gt;The pixel data format.&lt;/param&gt;</span></div>
<div class="line"><a id="l01242" name="l01242"></a><span class="lineno"> 1242</span><span class="comment">        /// &lt;param name=&quot;output_format&quot;&gt;An integer equivalent to &lt;see cref=&quot;RasterOutputFileTypes&quot;/&gt; specifying the output format.&lt;/param&gt;</span></div>
<div class="line"><a id="l01243" name="l01243"></a><span class="lineno"> 1243</span><span class="comment">        /// &lt;param name=&quot;out_buffer&quot;&gt;The address of the buffer on which the data has been written (only useful for disposing the buffer later).&lt;/param&gt;</span></div>
<div class="line"><a id="l01244" name="l01244"></a><span class="lineno"> 1244</span><span class="comment">        /// &lt;param name=&quot;out_data&quot;&gt;The address of the byte array where the data has been actually written.&lt;/param&gt;</span></div>
<div class="line"><a id="l01245" name="l01245"></a><span class="lineno"> 1245</span><span class="comment">        /// &lt;param name=&quot;out_length&quot;&gt;The length in bytes of the image data.&lt;/param&gt;</span></div>
<div class="line"><a id="l01246" name="l01246"></a><span class="lineno"> 1246</span><span class="comment">        /// &lt;returns&gt;An integer equivalent to &lt;see cref=&quot;ExitCodes&quot;/&gt; detailing whether any errors occurred.&lt;/returns&gt;</span></div>
<div class="line"><a id="l01247" name="l01247"></a><span class="lineno"> 1247</span><span class="comment"></span>        [DllImport(<span class="stringliteral">&quot;MuPDFWrapper&quot;</span>, CallingConvention = CallingConvention.Cdecl)]</div>
<div class="line"><a id="l01248" name="l01248"></a><span class="lineno"> 1248</span>        <span class="keyword">internal</span> <span class="keyword">static</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> WriteImage(IntPtr ctx, IntPtr list, <span class="keywordtype">float</span> x0, <span class="keywordtype">float</span> y0, <span class="keywordtype">float</span> x1, <span class="keywordtype">float</span> y1, <span class="keywordtype">float</span> zoom, <span class="keywordtype">int</span> colorFormat, <span class="keywordtype">int</span> output_format, ref IntPtr out_buffer, ref IntPtr out_data, ref ulong out_length);</div>
<div class="line"><a id="l01249" name="l01249"></a><span class="lineno"> 1249</span><span class="comment"></span> </div>
<div class="line"><a id="l01250" name="l01250"></a><span class="lineno"> 1250</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l01251" name="l01251"></a><span class="lineno"> 1251</span><span class="comment">        /// Free a native buffer and its associated resources.</span></div>
<div class="line"><a id="l01252" name="l01252"></a><span class="lineno"> 1252</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l01253" name="l01253"></a><span class="lineno"> 1253</span><span class="comment">        /// &lt;param name=&quot;ctx&quot;&gt;A context to hold the exception stack and the cached resources.&lt;/param&gt;</span></div>
<div class="line"><a id="l01254" name="l01254"></a><span class="lineno"> 1254</span><span class="comment">        /// &lt;param name=&quot;buf&quot;&gt;The buffer to free.&lt;/param&gt;</span></div>
<div class="line"><a id="l01255" name="l01255"></a><span class="lineno"> 1255</span><span class="comment">        /// &lt;returns&gt;An integer equivalent to &lt;see cref=&quot;ExitCodes&quot;/&gt; detailing whether any errors occurred.&lt;/returns&gt;</span></div>
<div class="line"><a id="l01256" name="l01256"></a><span class="lineno"> 1256</span><span class="comment"></span>        [DllImport(<span class="stringliteral">&quot;MuPDFWrapper&quot;</span>, CallingConvention = CallingConvention.Cdecl)]</div>
<div class="line"><a id="l01257" name="l01257"></a><span class="lineno"> 1257</span>        <span class="keyword">internal</span> <span class="keyword">static</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> DisposeBuffer(IntPtr ctx, IntPtr buf);</div>
<div class="line"><a id="l01258" name="l01258"></a><span class="lineno"> 1258</span><span class="comment"></span> </div>
<div class="line"><a id="l01259" name="l01259"></a><span class="lineno"> 1259</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l01260" name="l01260"></a><span class="lineno"> 1260</span><span class="comment">        /// Create a new document writer object.</span></div>
<div class="line"><a id="l01261" name="l01261"></a><span class="lineno"> 1261</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l01262" name="l01262"></a><span class="lineno"> 1262</span><span class="comment">        /// &lt;param name=&quot;ctx&quot;&gt;A context to hold the exception stack and the cached resources.&lt;/param&gt;</span></div>
<div class="line"><a id="l01263" name="l01263"></a><span class="lineno"> 1263</span><span class="comment">        /// &lt;param name=&quot;file_name&quot;&gt;The name of file that will hold the writer&#39;s output, UTF-8 encoded.&lt;/param&gt;</span></div>
<div class="line"><a id="l01264" name="l01264"></a><span class="lineno"> 1264</span><span class="comment">        /// &lt;param name=&quot;format&quot;&gt;An integer equivalent to &lt;see cref=&quot;DocumentOutputFileTypes&quot;/&gt; specifying the output format.&lt;/param&gt;</span></div>
<div class="line"><a id="l01265" name="l01265"></a><span class="lineno"> 1265</span><span class="comment">        /// &lt;param name=&quot;out_document_writer&quot;&gt;A pointer to the new document writer object.&lt;/param&gt;</span></div>
<div class="line"><a id="l01266" name="l01266"></a><span class="lineno"> 1266</span><span class="comment">        /// &lt;returns&gt;An integer equivalent to &lt;see cref=&quot;ExitCodes&quot;/&gt; detailing whether any errors occurred.&lt;/returns&gt;</span></div>
<div class="line"><a id="l01267" name="l01267"></a><span class="lineno"> 1267</span><span class="comment"></span>        [DllImport(<span class="stringliteral">&quot;MuPDFWrapper&quot;</span>, CallingConvention = CallingConvention.Cdecl)]</div>
<div class="line"><a id="l01268" name="l01268"></a><span class="lineno"> 1268</span>        <span class="keyword">internal</span> <span class="keyword">static</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> CreateDocumentWriter(IntPtr ctx, IntPtr file_name, <span class="keywordtype">int</span> format, ref IntPtr out_document_writer);</div>
<div class="line"><a id="l01269" name="l01269"></a><span class="lineno"> 1269</span><span class="comment"></span> </div>
<div class="line"><a id="l01270" name="l01270"></a><span class="lineno"> 1270</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l01271" name="l01271"></a><span class="lineno"> 1271</span><span class="comment">        /// Render (part of) a display list as a page in the specified document writer.</span></div>
<div class="line"><a id="l01272" name="l01272"></a><span class="lineno"> 1272</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l01273" name="l01273"></a><span class="lineno"> 1273</span><span class="comment">        /// &lt;param name=&quot;ctx&quot;&gt;A context to hold the exception stack and the cached resources.&lt;/param&gt;</span></div>
<div class="line"><a id="l01274" name="l01274"></a><span class="lineno"> 1274</span><span class="comment">        /// &lt;param name=&quot;list&quot;&gt;The display list to render.&lt;/param&gt;</span></div>
<div class="line"><a id="l01275" name="l01275"></a><span class="lineno"> 1275</span><span class="comment">        /// &lt;param name=&quot;x0&quot;&gt;The left coordinate in page units of the region of the display list that should be rendererd.&lt;/param&gt;</span></div>
<div class="line"><a id="l01276" name="l01276"></a><span class="lineno"> 1276</span><span class="comment">        /// &lt;param name=&quot;y0&quot;&gt;The top coordinate in page units of the region of the display list that should be rendererd.&lt;/param&gt;</span></div>
<div class="line"><a id="l01277" name="l01277"></a><span class="lineno"> 1277</span><span class="comment">        /// &lt;param name=&quot;x1&quot;&gt;The right coordinate in page units of the region of the display list that should be rendererd.&lt;/param&gt;</span></div>
<div class="line"><a id="l01278" name="l01278"></a><span class="lineno"> 1278</span><span class="comment">        /// &lt;param name=&quot;y1&quot;&gt;The bottom coordinate in page units of the region of the display list that should be rendererd.&lt;/param&gt;</span></div>
<div class="line"><a id="l01279" name="l01279"></a><span class="lineno"> 1279</span><span class="comment">        /// &lt;param name=&quot;zoom&quot;&gt;How much the specified region should be scaled when rendering. This will determine the final size of the page.&lt;/param&gt;</span></div>
<div class="line"><a id="l01280" name="l01280"></a><span class="lineno"> 1280</span><span class="comment">        /// &lt;param name=&quot;writ&quot;&gt;The document writer on which the page should be written.&lt;/param&gt;</span></div>
<div class="line"><a id="l01281" name="l01281"></a><span class="lineno"> 1281</span><span class="comment">        /// &lt;returns&gt;An integer equivalent to &lt;see cref=&quot;ExitCodes&quot;/&gt; detailing whether any errors occurred.&lt;/returns&gt;</span></div>
<div class="line"><a id="l01282" name="l01282"></a><span class="lineno"> 1282</span><span class="comment"></span>        [DllImport(<span class="stringliteral">&quot;MuPDFWrapper&quot;</span>, CallingConvention = CallingConvention.Cdecl)]</div>
<div class="line"><a id="l01283" name="l01283"></a><span class="lineno"> 1283</span>        <span class="keyword">internal</span> <span class="keyword">static</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> WriteSubDisplayListAsPage(IntPtr ctx, IntPtr list, <span class="keywordtype">float</span> x0, <span class="keywordtype">float</span> y0, <span class="keywordtype">float</span> x1, <span class="keywordtype">float</span> y1, <span class="keywordtype">float</span> zoom, IntPtr writ);</div>
<div class="line"><a id="l01284" name="l01284"></a><span class="lineno"> 1284</span><span class="comment"></span> </div>
<div class="line"><a id="l01285" name="l01285"></a><span class="lineno"> 1285</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l01286" name="l01286"></a><span class="lineno"> 1286</span><span class="comment">        /// Finalise a document writer, closing the file and freeing all resources.</span></div>
<div class="line"><a id="l01287" name="l01287"></a><span class="lineno"> 1287</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l01288" name="l01288"></a><span class="lineno"> 1288</span><span class="comment">        /// &lt;param name=&quot;ctx&quot;&gt;The context that was used to create the document writer.&lt;/param&gt;</span></div>
<div class="line"><a id="l01289" name="l01289"></a><span class="lineno"> 1289</span><span class="comment">        /// &lt;param name=&quot;writ&quot;&gt;The document writer to finalise.&lt;/param&gt;</span></div>
<div class="line"><a id="l01290" name="l01290"></a><span class="lineno"> 1290</span><span class="comment">        /// &lt;returns&gt;An integer equivalent to &lt;see cref=&quot;ExitCodes&quot;/&gt; detailing whether any errors occurred.&lt;/returns&gt;</span></div>
<div class="line"><a id="l01291" name="l01291"></a><span class="lineno"> 1291</span><span class="comment"></span>        [DllImport(<span class="stringliteral">&quot;MuPDFWrapper&quot;</span>, CallingConvention = CallingConvention.Cdecl)]</div>
<div class="line"><a id="l01292" name="l01292"></a><span class="lineno"> 1292</span>        <span class="keyword">internal</span> <span class="keyword">static</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> FinalizeDocumentWriter(IntPtr ctx, IntPtr writ);</div>
<div class="line"><a id="l01293" name="l01293"></a><span class="lineno"> 1293</span><span class="comment"></span> </div>
<div class="line"><a id="l01294" name="l01294"></a><span class="lineno"> 1294</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l01295" name="l01295"></a><span class="lineno"> 1295</span><span class="comment">        /// Get the contents of a structured text character.</span></div>
<div class="line"><a id="l01296" name="l01296"></a><span class="lineno"> 1296</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l01297" name="l01297"></a><span class="lineno"> 1297</span><span class="comment">        /// &lt;param name=&quot;character&quot;&gt;The address of the character.&lt;/param&gt;</span></div>
<div class="line"><a id="l01298" name="l01298"></a><span class="lineno"> 1298</span><span class="comment">        /// &lt;param name=&quot;out_c&quot;&gt;Unicode code point of the character.&lt;/param&gt;</span></div>
<div class="line"><a id="l01299" name="l01299"></a><span class="lineno"> 1299</span><span class="comment">        /// &lt;param name=&quot;out_color&quot;&gt;An sRGB hex representation of the colour of the character.&lt;/param&gt;</span></div>
<div class="line"><a id="l01300" name="l01300"></a><span class="lineno"> 1300</span><span class="comment">        /// &lt;param name=&quot;out_origin_x&quot;&gt;The x coordinate of the baseline origin of the character.&lt;/param&gt;</span></div>
<div class="line"><a id="l01301" name="l01301"></a><span class="lineno"> 1301</span><span class="comment">        /// &lt;param name=&quot;out_origin_y&quot;&gt;The y coordinate of the baseline origin of the character.&lt;/param&gt;</span></div>
<div class="line"><a id="l01302" name="l01302"></a><span class="lineno"> 1302</span><span class="comment">        /// &lt;param name=&quot;out_size&quot;&gt;The size in points of the character.&lt;/param&gt;</span></div>
<div class="line"><a id="l01303" name="l01303"></a><span class="lineno"> 1303</span><span class="comment">        /// &lt;param name=&quot;out_ll_x&quot;&gt;The x coordinate of the lower left corner of the bounding quad.&lt;/param&gt;</span></div>
<div class="line"><a id="l01304" name="l01304"></a><span class="lineno"> 1304</span><span class="comment">        /// &lt;param name=&quot;out_ll_y&quot;&gt;The y coordinate of the lower left corner of the bounding quad.&lt;/param&gt;</span></div>
<div class="line"><a id="l01305" name="l01305"></a><span class="lineno"> 1305</span><span class="comment">        /// &lt;param name=&quot;out_ul_x&quot;&gt;The x coordinate of the upper left corner of the bounding quad.&lt;/param&gt;</span></div>
<div class="line"><a id="l01306" name="l01306"></a><span class="lineno"> 1306</span><span class="comment">        /// &lt;param name=&quot;out_ul_y&quot;&gt;The y coordinate of the upper left corner of the bounding quad.&lt;/param&gt;</span></div>
<div class="line"><a id="l01307" name="l01307"></a><span class="lineno"> 1307</span><span class="comment">        /// &lt;param name=&quot;out_ur_x&quot;&gt;The x coordinate of the upper right corner of the bounding quad.&lt;/param&gt;</span></div>
<div class="line"><a id="l01308" name="l01308"></a><span class="lineno"> 1308</span><span class="comment">        /// &lt;param name=&quot;out_ur_y&quot;&gt;The y coordinate of the upper right corner of the bounding quad.&lt;/param&gt;</span></div>
<div class="line"><a id="l01309" name="l01309"></a><span class="lineno"> 1309</span><span class="comment">        /// &lt;param name=&quot;out_lr_x&quot;&gt;The x coordinate of the lower right corner of the bounding quad.&lt;/param&gt;</span></div>
<div class="line"><a id="l01310" name="l01310"></a><span class="lineno"> 1310</span><span class="comment">        /// &lt;param name=&quot;out_lr_y&quot;&gt;The y coordinate of the lower right corner of the bounding quad.&lt;/param&gt;</span></div>
<div class="line"><a id="l01311" name="l01311"></a><span class="lineno"> 1311</span><span class="comment">        /// &lt;returns&gt;An integer equivalent to &lt;see cref=&quot;ExitCodes&quot;/&gt; detailing whether any errors occurred.&lt;/returns&gt;</span></div>
<div class="line"><a id="l01312" name="l01312"></a><span class="lineno"> 1312</span><span class="comment"></span>        [DllImport(<span class="stringliteral">&quot;MuPDFWrapper&quot;</span>, CallingConvention = CallingConvention.Cdecl)]</div>
<div class="line"><a id="l01313" name="l01313"></a><span class="lineno"> 1313</span>        <span class="keyword">internal</span> <span class="keyword">static</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> GetStructuredTextChar(IntPtr character, ref <span class="keywordtype">int</span> out_c, ref <span class="keywordtype">int</span> out_color, ref <span class="keywordtype">float</span> out_origin_x, ref <span class="keywordtype">float</span> out_origin_y, ref <span class="keywordtype">float</span> out_size, ref <span class="keywordtype">float</span> out_ll_x, ref <span class="keywordtype">float</span> out_ll_y, ref <span class="keywordtype">float</span> out_ul_x, ref <span class="keywordtype">float</span> out_ul_y, ref <span class="keywordtype">float</span> out_ur_x, ref <span class="keywordtype">float</span> out_ur_y, ref <span class="keywordtype">float</span> out_lr_x, ref <span class="keywordtype">float</span> out_lr_y);</div>
<div class="line"><a id="l01314" name="l01314"></a><span class="lineno"> 1314</span><span class="comment"></span> </div>
<div class="line"><a id="l01315" name="l01315"></a><span class="lineno"> 1315</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l01316" name="l01316"></a><span class="lineno"> 1316</span><span class="comment">        /// Get an array of structured text characters from a structured text line.</span></div>
<div class="line"><a id="l01317" name="l01317"></a><span class="lineno"> 1317</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l01318" name="l01318"></a><span class="lineno"> 1318</span><span class="comment">        /// &lt;param name=&quot;line&quot;&gt;The structured text line from which the characters should be extracted.&lt;/param&gt;</span></div>
<div class="line"><a id="l01319" name="l01319"></a><span class="lineno"> 1319</span><span class="comment">        /// &lt;param name=&quot;out_chars&quot;&gt;An array of pointers to the structured text characters.&lt;/param&gt;</span></div>
<div class="line"><a id="l01320" name="l01320"></a><span class="lineno"> 1320</span><span class="comment">        /// &lt;returns&gt;An integer equivalent to &lt;see cref=&quot;ExitCodes&quot;/&gt; detailing whether any errors occurred.&lt;/returns&gt;</span></div>
<div class="line"><a id="l01321" name="l01321"></a><span class="lineno"> 1321</span><span class="comment"></span>        [DllImport(<span class="stringliteral">&quot;MuPDFWrapper&quot;</span>, CallingConvention = CallingConvention.Cdecl)]</div>
<div class="line"><a id="l01322" name="l01322"></a><span class="lineno"> 1322</span>        <span class="keyword">internal</span> <span class="keyword">static</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> GetStructuredTextChars(IntPtr line, IntPtr out_chars);</div>
<div class="line"><a id="l01323" name="l01323"></a><span class="lineno"> 1323</span><span class="comment"></span> </div>
<div class="line"><a id="l01324" name="l01324"></a><span class="lineno"> 1324</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l01325" name="l01325"></a><span class="lineno"> 1325</span><span class="comment">        /// Get the contents of a structured text line.</span></div>
<div class="line"><a id="l01326" name="l01326"></a><span class="lineno"> 1326</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l01327" name="l01327"></a><span class="lineno"> 1327</span><span class="comment">        /// &lt;param name=&quot;line&quot;&gt;The address of the line.&lt;/param&gt;</span></div>
<div class="line"><a id="l01328" name="l01328"></a><span class="lineno"> 1328</span><span class="comment">        /// &lt;param name=&quot;out_wmode&quot;&gt;An integer equivalent to &lt;see cref=&quot;MuPDFStructuredTextLine&quot;/&gt; representing the writing mode of the line.&lt;/param&gt;</span></div>
<div class="line"><a id="l01329" name="l01329"></a><span class="lineno"> 1329</span><span class="comment">        /// &lt;param name=&quot;out_x0&quot;&gt;The left coordinate in page units of the bounding box of the line.&lt;/param&gt;</span></div>
<div class="line"><a id="l01330" name="l01330"></a><span class="lineno"> 1330</span><span class="comment">        /// &lt;param name=&quot;out_y0&quot;&gt;The top coordinate in page units of the bounding box of the line.&lt;/param&gt;</span></div>
<div class="line"><a id="l01331" name="l01331"></a><span class="lineno"> 1331</span><span class="comment">        /// &lt;param name=&quot;out_x1&quot;&gt;The right coordinate in page units of the bounding box of the line.&lt;/param&gt;</span></div>
<div class="line"><a id="l01332" name="l01332"></a><span class="lineno"> 1332</span><span class="comment">        /// &lt;param name=&quot;out_y1&quot;&gt;The bottom coordinate in page units of the bounding box of the line.&lt;/param&gt;</span></div>
<div class="line"><a id="l01333" name="l01333"></a><span class="lineno"> 1333</span><span class="comment">        /// &lt;param name=&quot;out_x&quot;&gt;The x component of the normalised direction of the baseline.&lt;/param&gt;</span></div>
<div class="line"><a id="l01334" name="l01334"></a><span class="lineno"> 1334</span><span class="comment">        /// &lt;param name=&quot;out_y&quot;&gt;The y component of the normalised direction of the baseline.&lt;/param&gt;</span></div>
<div class="line"><a id="l01335" name="l01335"></a><span class="lineno"> 1335</span><span class="comment">        /// &lt;param name=&quot;out_char_count&quot;&gt;The number of characters in the line.&lt;/param&gt;</span></div>
<div class="line"><a id="l01336" name="l01336"></a><span class="lineno"> 1336</span><span class="comment">        /// &lt;returns&gt;An integer equivalent to &lt;see cref=&quot;ExitCodes&quot;/&gt; detailing whether any errors occurred.&lt;/returns&gt;</span></div>
<div class="line"><a id="l01337" name="l01337"></a><span class="lineno"> 1337</span><span class="comment"></span>        [DllImport(<span class="stringliteral">&quot;MuPDFWrapper&quot;</span>, CallingConvention = CallingConvention.Cdecl)]</div>
<div class="line"><a id="l01338" name="l01338"></a><span class="lineno"> 1338</span>        <span class="keyword">internal</span> <span class="keyword">static</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> GetStructuredTextLine(IntPtr line, ref <span class="keywordtype">int</span> out_wmode, ref <span class="keywordtype">float</span> out_x0, ref <span class="keywordtype">float</span> out_y0, ref <span class="keywordtype">float</span> out_x1, ref <span class="keywordtype">float</span> out_y1, ref <span class="keywordtype">float</span> out_x, ref <span class="keywordtype">float</span> out_y, ref <span class="keywordtype">int</span> out_char_count);</div>
<div class="line"><a id="l01339" name="l01339"></a><span class="lineno"> 1339</span><span class="comment"></span> </div>
<div class="line"><a id="l01340" name="l01340"></a><span class="lineno"> 1340</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l01341" name="l01341"></a><span class="lineno"> 1341</span><span class="comment">        /// Get an array of structured text lines from a structured text block.</span></div>
<div class="line"><a id="l01342" name="l01342"></a><span class="lineno"> 1342</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l01343" name="l01343"></a><span class="lineno"> 1343</span><span class="comment">        /// &lt;param name=&quot;block&quot;&gt;The structured text block from which the lines should be extracted.&lt;/param&gt;</span></div>
<div class="line"><a id="l01344" name="l01344"></a><span class="lineno"> 1344</span><span class="comment">        /// &lt;param name=&quot;out_lines&quot;&gt;An array of pointers to the structured text lines.&lt;/param&gt;</span></div>
<div class="line"><a id="l01345" name="l01345"></a><span class="lineno"> 1345</span><span class="comment">        /// &lt;returns&gt;An integer equivalent to &lt;see cref=&quot;ExitCodes&quot;/&gt; detailing whether any errors occurred.&lt;/returns&gt;</span></div>
<div class="line"><a id="l01346" name="l01346"></a><span class="lineno"> 1346</span><span class="comment"></span>        [DllImport(<span class="stringliteral">&quot;MuPDFWrapper&quot;</span>, CallingConvention = CallingConvention.Cdecl)]</div>
<div class="line"><a id="l01347" name="l01347"></a><span class="lineno"> 1347</span>        <span class="keyword">internal</span> <span class="keyword">static</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> GetStructuredTextLines(IntPtr block, IntPtr out_lines);</div>
<div class="line"><a id="l01348" name="l01348"></a><span class="lineno"> 1348</span><span class="comment"></span> </div>
<div class="line"><a id="l01349" name="l01349"></a><span class="lineno"> 1349</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l01350" name="l01350"></a><span class="lineno"> 1350</span><span class="comment">        /// Get the contents of a structured text block.</span></div>
<div class="line"><a id="l01351" name="l01351"></a><span class="lineno"> 1351</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l01352" name="l01352"></a><span class="lineno"> 1352</span><span class="comment">        /// &lt;param name=&quot;block&quot;&gt;The address of the block.&lt;/param&gt;</span></div>
<div class="line"><a id="l01353" name="l01353"></a><span class="lineno"> 1353</span><span class="comment">        /// &lt;param name=&quot;out_type&quot;&gt;An integer equivalent to &lt;see cref=&quot;MuPDFStructuredTextBlock.Types&quot;/&gt; representing the type of the block.&lt;/param&gt;</span></div>
<div class="line"><a id="l01354" name="l01354"></a><span class="lineno"> 1354</span><span class="comment">        /// &lt;param name=&quot;out_x0&quot;&gt;The left coordinate in page units of the bounding box of the block.&lt;/param&gt;</span></div>
<div class="line"><a id="l01355" name="l01355"></a><span class="lineno"> 1355</span><span class="comment">        /// &lt;param name=&quot;out_y0&quot;&gt;The top coordinate in page units of the bounding box of the block.&lt;/param&gt;</span></div>
<div class="line"><a id="l01356" name="l01356"></a><span class="lineno"> 1356</span><span class="comment">        /// &lt;param name=&quot;out_x1&quot;&gt;The right coordinate in page units of the bounding box of the block.&lt;/param&gt;</span></div>
<div class="line"><a id="l01357" name="l01357"></a><span class="lineno"> 1357</span><span class="comment">        /// &lt;param name=&quot;out_y1&quot;&gt;The bottom coordinate in page units of the bounding box of the block.&lt;/param&gt;</span></div>
<div class="line"><a id="l01358" name="l01358"></a><span class="lineno"> 1358</span><span class="comment">        /// &lt;param name=&quot;out_line_count&quot;&gt;The number of lines in the block.&lt;/param&gt;</span></div>
<div class="line"><a id="l01359" name="l01359"></a><span class="lineno"> 1359</span><span class="comment">        /// &lt;returns&gt;An integer equivalent to &lt;see cref=&quot;ExitCodes&quot;/&gt; detailing whether any errors occurred.&lt;/returns&gt;</span></div>
<div class="line"><a id="l01360" name="l01360"></a><span class="lineno"> 1360</span><span class="comment"></span>        [DllImport(<span class="stringliteral">&quot;MuPDFWrapper&quot;</span>, CallingConvention = CallingConvention.Cdecl)]</div>
<div class="line"><a id="l01361" name="l01361"></a><span class="lineno"> 1361</span>        <span class="keyword">internal</span> <span class="keyword">static</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> GetStructuredTextBlock(IntPtr block, ref <span class="keywordtype">int</span> out_type, ref <span class="keywordtype">float</span> out_x0, ref <span class="keywordtype">float</span> out_y0, ref <span class="keywordtype">float</span> out_x1, ref <span class="keywordtype">float</span> out_y1, ref <span class="keywordtype">int</span> out_line_count);</div>
<div class="line"><a id="l01362" name="l01362"></a><span class="lineno"> 1362</span><span class="comment"></span> </div>
<div class="line"><a id="l01363" name="l01363"></a><span class="lineno"> 1363</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l01364" name="l01364"></a><span class="lineno"> 1364</span><span class="comment">        /// Get an array of structured text blocks from a structured text page.</span></div>
<div class="line"><a id="l01365" name="l01365"></a><span class="lineno"> 1365</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l01366" name="l01366"></a><span class="lineno"> 1366</span><span class="comment">        /// &lt;param name=&quot;page&quot;&gt;The structured text page from which the blocks should be extracted.&lt;/param&gt;</span></div>
<div class="line"><a id="l01367" name="l01367"></a><span class="lineno"> 1367</span><span class="comment">        /// &lt;param name=&quot;out_blocks&quot;&gt;An array of pointers to the structured text blocks.&lt;/param&gt;</span></div>
<div class="line"><a id="l01368" name="l01368"></a><span class="lineno"> 1368</span><span class="comment">        /// &lt;returns&gt;An integer equivalent to &lt;see cref=&quot;ExitCodes&quot;/&gt; detailing whether any errors occurred.&lt;/returns&gt;</span></div>
<div class="line"><a id="l01369" name="l01369"></a><span class="lineno"> 1369</span><span class="comment"></span>        [DllImport(<span class="stringliteral">&quot;MuPDFWrapper&quot;</span>, CallingConvention = CallingConvention.Cdecl)]</div>
<div class="line"><a id="l01370" name="l01370"></a><span class="lineno"> 1370</span>        <span class="keyword">internal</span> <span class="keyword">static</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> GetStructuredTextBlocks(IntPtr page, IntPtr out_blocks);</div>
<div class="line"><a id="l01371" name="l01371"></a><span class="lineno"> 1371</span><span class="comment"></span> </div>
<div class="line"><a id="l01372" name="l01372"></a><span class="lineno"> 1372</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l01373" name="l01373"></a><span class="lineno"> 1373</span><span class="comment">        /// Get a structured text representation of a display list.</span></div>
<div class="line"><a id="l01374" name="l01374"></a><span class="lineno"> 1374</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l01375" name="l01375"></a><span class="lineno"> 1375</span><span class="comment">        /// &lt;param name=&quot;ctx&quot;&gt;A context to hold the exception stack and the cached resources.&lt;/param&gt;</span></div>
<div class="line"><a id="l01376" name="l01376"></a><span class="lineno"> 1376</span><span class="comment">        /// &lt;param name=&quot;list&quot;&gt;The display list whose structured text representation is sought.&lt;/param&gt;</span></div>
<div class="line"><a id="l01377" name="l01377"></a><span class="lineno"> 1377</span><span class="comment">        /// &lt;param name=&quot;out_page&quot;&gt;The address of the structured text page.&lt;/param&gt;</span></div>
<div class="line"><a id="l01378" name="l01378"></a><span class="lineno"> 1378</span><span class="comment">        /// &lt;param name=&quot;out_stext_block_count&quot;&gt;The number of structured text blocks in the page.&lt;/param&gt;</span></div>
<div class="line"><a id="l01379" name="l01379"></a><span class="lineno"> 1379</span><span class="comment">        /// &lt;returns&gt;An integer equivalent to &lt;see cref=&quot;ExitCodes&quot;/&gt; detailing whether any errors occurred.&lt;/returns&gt;</span></div>
<div class="line"><a id="l01380" name="l01380"></a><span class="lineno"> 1380</span><span class="comment"></span>        [DllImport(<span class="stringliteral">&quot;MuPDFWrapper&quot;</span>, CallingConvention = CallingConvention.Cdecl)]</div>
<div class="line"><a id="l01381" name="l01381"></a><span class="lineno"> 1381</span>        <span class="keyword">internal</span> <span class="keyword">static</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> GetStructuredTextPage(IntPtr ctx, IntPtr list, ref IntPtr out_page, ref <span class="keywordtype">int</span> out_stext_block_count);</div>
<div class="line"><a id="l01382" name="l01382"></a><span class="lineno"> 1382</span><span class="comment"></span> </div>
<div class="line"><a id="l01383" name="l01383"></a><span class="lineno"> 1383</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l01384" name="l01384"></a><span class="lineno"> 1384</span><span class="comment">        /// Delegate defining a callback function that is invoked by the unmanaged MuPDF library to indicate OCR progress.</span></div>
<div class="line"><a id="l01385" name="l01385"></a><span class="lineno"> 1385</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l01386" name="l01386"></a><span class="lineno"> 1386</span><span class="comment">        /// &lt;param name=&quot;progress&quot;&gt;The current progress, ranging from 0 to 100.&lt;/param&gt;</span></div>
<div class="line"><a id="l01387" name="l01387"></a><span class="lineno"> 1387</span><span class="comment">        /// &lt;returns&gt;This function should return 0 to indicate that the OCR process should continue, or 1 to indicate that it should be stopped.&lt;/returns&gt;</span></div>
<div class="line"><a id="l01388" name="l01388"></a><span class="lineno"> 1388</span><span class="comment"></span>        <span class="keyword">internal</span> delegate <span class="keywordtype">int</span> ProgressCallback(<span class="keywordtype">int</span> progress);</div>
<div class="line"><a id="l01389" name="l01389"></a><span class="lineno"> 1389</span><span class="comment"></span> </div>
<div class="line"><a id="l01390" name="l01390"></a><span class="lineno"> 1390</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l01391" name="l01391"></a><span class="lineno"> 1391</span><span class="comment">        /// Get a structured text representation of a display list, using the Tesseract OCR engine.</span></div>
<div class="line"><a id="l01392" name="l01392"></a><span class="lineno"> 1392</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l01393" name="l01393"></a><span class="lineno"> 1393</span><span class="comment">        /// &lt;param name=&quot;ctx&quot;&gt;A context to hold the exception stack and the cached resources.&lt;/param&gt;</span></div>
<div class="line"><a id="l01394" name="l01394"></a><span class="lineno"> 1394</span><span class="comment">        /// &lt;param name=&quot;list&quot;&gt;The display list whose structured text representation is sought.&lt;/param&gt;</span></div>
<div class="line"><a id="l01395" name="l01395"></a><span class="lineno"> 1395</span><span class="comment">        /// &lt;param name=&quot;out_page&quot;&gt;The address of the structured text page.&lt;/param&gt;</span></div>
<div class="line"><a id="l01396" name="l01396"></a><span class="lineno"> 1396</span><span class="comment">        /// &lt;param name=&quot;out_stext_block_count&quot;&gt;The number of structured text blocks in the page.&lt;/param&gt;</span></div>
<div class="line"><a id="l01397" name="l01397"></a><span class="lineno"> 1397</span><span class="comment">        /// &lt;param name=&quot;zoom&quot;&gt;How much the specified region should be scaled when rendering. This determines the size in pixels of the image that is passed to Tesseract.&lt;/param&gt;</span></div>
<div class="line"><a id="l01398" name="l01398"></a><span class="lineno"> 1398</span><span class="comment">        /// &lt;param name=&quot;x0&quot;&gt;The left coordinate in page units of the region of the display list that should be analysed.&lt;/param&gt;</span></div>
<div class="line"><a id="l01399" name="l01399"></a><span class="lineno"> 1399</span><span class="comment">        /// &lt;param name=&quot;y0&quot;&gt;The top coordinate in page units of the region of the display list that should be analysed.&lt;/param&gt;</span></div>
<div class="line"><a id="l01400" name="l01400"></a><span class="lineno"> 1400</span><span class="comment">        /// &lt;param name=&quot;x1&quot;&gt;The right coordinate in page units of the region of the display list that should be analysed.&lt;/param&gt;</span></div>
<div class="line"><a id="l01401" name="l01401"></a><span class="lineno"> 1401</span><span class="comment">        /// &lt;param name=&quot;y1&quot;&gt;The bottom coordinate in page units of the region of the display list that should be analysed.&lt;/param&gt;</span></div>
<div class="line"><a id="l01402" name="l01402"></a><span class="lineno"> 1402</span><span class="comment">        /// &lt;param name=&quot;prefix&quot;&gt;A string value that will be used as an argument for the &lt;c&gt;putenv&lt;/c&gt; function. If this is &lt;see langword=&quot;null&quot;/&gt;, the &lt;c&gt;putenv&lt;/c&gt; function is not invoked. Usually used to set the value of the &lt;c&gt;TESSDATA_PREFIX&lt;/c&gt; environment variable.&lt;/param&gt;</span></div>
<div class="line"><a id="l01403" name="l01403"></a><span class="lineno"> 1403</span><span class="comment">        /// &lt;param name=&quot;language&quot;&gt;The name of the language model file to use for the OCR.&lt;/param&gt;</span></div>
<div class="line"><a id="l01404" name="l01404"></a><span class="lineno"> 1404</span><span class="comment">        /// &lt;param name=&quot;callback&quot;&gt;A progress callback function. This function will be called with an integer parameter ranging from 0 to 100 to indicate OCR progress, and should return 0 to continue or 1 to abort the OCR process.&lt;/param&gt;</span></div>
<div class="line"><a id="l01405" name="l01405"></a><span class="lineno"> 1405</span><span class="comment">        /// &lt;returns&gt;An integer equivalent to &lt;see cref=&quot;ExitCodes&quot;/&gt; detailing whether any errors occurred.&lt;/returns&gt;</span></div>
<div class="line"><a id="l01406" name="l01406"></a><span class="lineno"> 1406</span><span class="comment"></span>        [DllImport(<span class="stringliteral">&quot;MuPDFWrapper&quot;</span>, CallingConvention = CallingConvention.Cdecl)]</div>
<div class="line"><a id="l01407" name="l01407"></a><span class="lineno"> 1407</span>        <span class="keyword">internal</span> <span class="keyword">static</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> GetStructuredTextPageWithOCR(IntPtr ctx, IntPtr list, ref IntPtr out_page, ref <span class="keywordtype">int</span> out_stext_block_count, <span class="keywordtype">float</span> zoom, <span class="keywordtype">float</span> x0, <span class="keywordtype">float</span> y0, <span class="keywordtype">float</span> x1, <span class="keywordtype">float</span> y1, <span class="keywordtype">string</span> prefix, <span class="keywordtype">string</span> language, [MarshalAs(UnmanagedType.FunctionPtr)] ProgressCallback callback);</div>
<div class="line"><a id="l01408" name="l01408"></a><span class="lineno"> 1408</span><span class="comment"></span> </div>
<div class="line"><a id="l01409" name="l01409"></a><span class="lineno"> 1409</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l01410" name="l01410"></a><span class="lineno"> 1410</span><span class="comment">        /// Free a native structured text page and its associated resources.</span></div>
<div class="line"><a id="l01411" name="l01411"></a><span class="lineno"> 1411</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l01412" name="l01412"></a><span class="lineno"> 1412</span><span class="comment">        /// &lt;param name=&quot;ctx&quot;&gt;&lt;/param&gt;</span></div>
<div class="line"><a id="l01413" name="l01413"></a><span class="lineno"> 1413</span><span class="comment">        /// &lt;param name=&quot;page&quot;&gt;&lt;/param&gt;</span></div>
<div class="line"><a id="l01414" name="l01414"></a><span class="lineno"> 1414</span><span class="comment">        /// &lt;returns&gt;An integer equivalent to &lt;see cref=&quot;ExitCodes&quot;/&gt; detailing whether any errors occurred.&lt;/returns&gt;</span></div>
<div class="line"><a id="l01415" name="l01415"></a><span class="lineno"> 1415</span><span class="comment"></span>        [DllImport(<span class="stringliteral">&quot;MuPDFWrapper&quot;</span>, CallingConvention = CallingConvention.Cdecl)]</div>
<div class="line"><a id="l01416" name="l01416"></a><span class="lineno"> 1416</span>        <span class="keyword">internal</span> <span class="keyword">static</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> DisposeStructuredTextPage(IntPtr ctx, IntPtr page);</div>
<div class="line"><a id="l01417" name="l01417"></a><span class="lineno"> 1417</span><span class="comment"></span> </div>
<div class="line"><a id="l01418" name="l01418"></a><span class="lineno"> 1418</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l01419" name="l01419"></a><span class="lineno"> 1419</span><span class="comment">        /// Redirect the standard output and standard error to named pipes with the specified names. On Windows, these are actually named pipes; on Linux and macOS, these are Unix sockets (matching the behaviour of System.IO.Pipes). Note that this has side-effects.</span></div>
<div class="line"><a id="l01420" name="l01420"></a><span class="lineno"> 1420</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l01421" name="l01421"></a><span class="lineno"> 1421</span><span class="comment">        /// &lt;param name=&quot;stdoutFD&quot;&gt;When the method returns, this variable will contain the file descriptor corresponding to the &quot;real&quot; stdout.&lt;/param&gt;</span></div>
<div class="line"><a id="l01422" name="l01422"></a><span class="lineno"> 1422</span><span class="comment">        /// &lt;param name=&quot;stderrFD&quot;&gt;When the method returns, this variable will contain the file descriptor corresponding to the &quot;real&quot; stderr.&lt;/param&gt;</span></div>
<div class="line"><a id="l01423" name="l01423"></a><span class="lineno"> 1423</span><span class="comment">        /// &lt;param name=&quot;stdoutPipeName&quot;&gt;The name of the pipe where stdout will be redirected. On Windows, this should be of the form &quot;\\.\pipe\xxx&quot;, while on Linux and macOS it should be an absolute file path (maximum length 107/108 characters).&lt;/param&gt;</span></div>
<div class="line"><a id="l01424" name="l01424"></a><span class="lineno"> 1424</span><span class="comment">        /// &lt;param name=&quot;stderrPipeName&quot;&gt;The name of the pipe where stderr will be redirected. On Windows, this should be of the form &quot;\\.\pipe\xxx&quot;, while on Linux and macOS it should be an absolute file path (maximum length 107/108 characters).&lt;/param&gt;</span></div>
<div class="line"><a id="l01425" name="l01425"></a><span class="lineno"> 1425</span><span class="comment"></span>        [DllImport(<span class="stringliteral">&quot;MuPDFWrapper&quot;</span>, CallingConvention = CallingConvention.Cdecl)]</div>
<div class="line"><a id="l01426" name="l01426"></a><span class="lineno"> 1426</span>        <span class="keyword">internal</span> <span class="keyword">static</span> <span class="keyword">extern</span> <span class="keywordtype">void</span> RedirectOutput(out <span class="keywordtype">int</span> stdoutFD, out <span class="keywordtype">int</span> stderrFD, <span class="keywordtype">string</span> stdoutPipeName, <span class="keywordtype">string</span> stderrPipeName);</div>
<div class="line"><a id="l01427" name="l01427"></a><span class="lineno"> 1427</span><span class="comment"></span> </div>
<div class="line"><a id="l01428" name="l01428"></a><span class="lineno"> 1428</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l01429" name="l01429"></a><span class="lineno"> 1429</span><span class="comment">        /// Write the specified &lt;paramref name=&quot;text&quot;/&gt; to a file descriptor. Use 1 for stdout and 2 for stderr (which may have been redirected).</span></div>
<div class="line"><a id="l01430" name="l01430"></a><span class="lineno"> 1430</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l01431" name="l01431"></a><span class="lineno"> 1431</span><span class="comment">        /// &lt;param name=&quot;fileDescriptor&quot;&gt;The file descriptor on which to write.&lt;/param&gt;</span></div>
<div class="line"><a id="l01432" name="l01432"></a><span class="lineno"> 1432</span><span class="comment">        /// &lt;param name=&quot;text&quot;&gt;The text to write.&lt;/param&gt;</span></div>
<div class="line"><a id="l01433" name="l01433"></a><span class="lineno"> 1433</span><span class="comment">        /// &lt;param name=&quot;length&quot;&gt;The length of the text to write (i.e., text.Length).&lt;/param&gt;</span></div>
<div class="line"><a id="l01434" name="l01434"></a><span class="lineno"> 1434</span><span class="comment"></span>        [DllImport(<span class="stringliteral">&quot;MuPDFWrapper&quot;</span>, CallingConvention = CallingConvention.Cdecl)]</div>
<div class="line"><a id="l01435" name="l01435"></a><span class="lineno"> 1435</span>        <span class="keyword">internal</span> <span class="keyword">static</span> <span class="keyword">extern</span> <span class="keywordtype">void</span> WriteToFileDescriptor(<span class="keywordtype">int</span> fileDescriptor, <span class="keywordtype">string</span> text, <span class="keywordtype">int</span> length);</div>
<div class="line"><a id="l01436" name="l01436"></a><span class="lineno"> 1436</span><span class="comment"></span> </div>
<div class="line"><a id="l01437" name="l01437"></a><span class="lineno"> 1437</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l01438" name="l01438"></a><span class="lineno"> 1438</span><span class="comment">        /// Reset the standard output and standard error (or redirect them to the specified file descriptors, theoretically). Use with the &lt;paramref name=&quot;stdoutFD&quot;/&gt; and &lt;paramref name=&quot;stderrFD&quot;/&gt; returned by &lt;see cref=&quot;RedirectOutput&quot;/&gt; to undo what it did.</span></div>
<div class="line"><a id="l01439" name="l01439"></a><span class="lineno"> 1439</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l01440" name="l01440"></a><span class="lineno"> 1440</span><span class="comment">        /// &lt;param name=&quot;stdoutFD&quot;&gt;The file descriptor corresponding to the &quot;real&quot; stdout.&lt;/param&gt;</span></div>
<div class="line"><a id="l01441" name="l01441"></a><span class="lineno"> 1441</span><span class="comment">        /// &lt;param name=&quot;stderrFD&quot;&gt;The file descriptor corresponding to the &quot;real&quot; stderr.&lt;/param&gt;</span></div>
<div class="line"><a id="l01442" name="l01442"></a><span class="lineno"> 1442</span><span class="comment"></span>        [DllImport(<span class="stringliteral">&quot;MuPDFWrapper&quot;</span>, CallingConvention = CallingConvention.Cdecl)]</div>
<div class="line"><a id="l01443" name="l01443"></a><span class="lineno"> 1443</span>        <span class="keyword">internal</span> <span class="keyword">static</span> <span class="keyword">extern</span> <span class="keywordtype">void</span> ResetOutput(<span class="keywordtype">int</span> stdoutFD, <span class="keywordtype">int</span> stderrFD);</div>
<div class="line"><a id="l01444" name="l01444"></a><span class="lineno"> 1444</span><span class="comment"></span> </div>
<div class="line"><a id="l01445" name="l01445"></a><span class="lineno"> 1445</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l01446" name="l01446"></a><span class="lineno"> 1446</span><span class="comment">        /// Unlocks a document with a password.</span></div>
<div class="line"><a id="l01447" name="l01447"></a><span class="lineno"> 1447</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l01448" name="l01448"></a><span class="lineno"> 1448</span><span class="comment">        /// &lt;param name=&quot;ctx&quot;&gt;A context to hold the exception stack and the cached resources.&lt;/param&gt;</span></div>
<div class="line"><a id="l01449" name="l01449"></a><span class="lineno"> 1449</span><span class="comment">        /// &lt;param name=&quot;doc&quot;&gt;The document that needs to be unlocked.&lt;/param&gt;</span></div>
<div class="line"><a id="l01450" name="l01450"></a><span class="lineno"> 1450</span><span class="comment">        /// &lt;param name=&quot;password&quot;&gt;The password to unlock the document.&lt;/param&gt;</span></div>
<div class="line"><a id="l01451" name="l01451"></a><span class="lineno"> 1451</span><span class="comment">        /// &lt;returns&gt;0 if the document could not be unlocked, 1 if the document did not require unlocking in the first place, 2 if the document was unlocked using the user password and 4 if the document was unlocked using the owner password.&lt;/returns&gt;</span></div>
<div class="line"><a id="l01452" name="l01452"></a><span class="lineno"> 1452</span><span class="comment"></span>        [DllImport(<span class="stringliteral">&quot;MuPDFWrapper&quot;</span>, CallingConvention = CallingConvention.Cdecl)]</div>
<div class="line"><a id="l01453" name="l01453"></a><span class="lineno"> 1453</span>        <span class="keyword">internal</span> <span class="keyword">static</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> UnlockWithPassword(IntPtr ctx, IntPtr doc, <span class="keywordtype">string</span> password);</div>
<div class="line"><a id="l01454" name="l01454"></a><span class="lineno"> 1454</span><span class="comment"></span> </div>
<div class="line"><a id="l01455" name="l01455"></a><span class="lineno"> 1455</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l01456" name="l01456"></a><span class="lineno"> 1456</span><span class="comment">        /// Checks whether a password is required to open the document.</span></div>
<div class="line"><a id="l01457" name="l01457"></a><span class="lineno"> 1457</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l01458" name="l01458"></a><span class="lineno"> 1458</span><span class="comment">        /// &lt;param name=&quot;ctx&quot;&gt;A context to hold the exception stack and the cached resources.&lt;/param&gt;</span></div>
<div class="line"><a id="l01459" name="l01459"></a><span class="lineno"> 1459</span><span class="comment">        /// &lt;param name=&quot;doc&quot;&gt;The document that needs to be checked.&lt;/param&gt;</span></div>
<div class="line"><a id="l01460" name="l01460"></a><span class="lineno"> 1460</span><span class="comment">        /// &lt;returns&gt;0 if a password is not needed, 1 if a password is needed.&lt;/returns&gt;</span></div>
<div class="line"><a id="l01461" name="l01461"></a><span class="lineno"> 1461</span><span class="comment"></span>        [DllImport(<span class="stringliteral">&quot;MuPDFWrapper&quot;</span>, CallingConvention = CallingConvention.Cdecl)]</div>
<div class="line"><a id="l01462" name="l01462"></a><span class="lineno"> 1462</span>        <span class="keyword">internal</span> <span class="keyword">static</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> CheckIfPasswordNeeded(IntPtr ctx, IntPtr doc);</div>
<div class="line"><a id="l01463" name="l01463"></a><span class="lineno"> 1463</span><span class="comment"></span> </div>
<div class="line"><a id="l01464" name="l01464"></a><span class="lineno"> 1464</span><span class="comment">        /// &lt;summary&gt;</span></div>
<div class="line"><a id="l01465" name="l01465"></a><span class="lineno"> 1465</span><span class="comment">        /// Returns the current permissions for the document. Note that these are not actually enforced.</span></div>
<div class="line"><a id="l01466" name="l01466"></a><span class="lineno"> 1466</span><span class="comment">        /// &lt;/summary&gt;</span></div>
<div class="line"><a id="l01467" name="l01467"></a><span class="lineno"> 1467</span><span class="comment">        /// &lt;param name=&quot;ctx&quot;&gt;A context to hold the exception stack and the cached resources.&lt;/param&gt;</span></div>
<div class="line"><a id="l01468" name="l01468"></a><span class="lineno"> 1468</span><span class="comment">        /// &lt;param name=&quot;doc&quot;&gt;The document whose permissions need to be checked.&lt;/param&gt;</span></div>
<div class="line"><a id="l01469" name="l01469"></a><span class="lineno"> 1469</span><span class="comment">        /// &lt;returns&gt;An integer with bit 0 set if the document can be printed, bit 1 set if it can be copied, bit 2 set if it can be edited, and bit 3 set if it can be annotated.&lt;/returns&gt;</span></div>
<div class="line"><a id="l01470" name="l01470"></a><span class="lineno"> 1470</span><span class="comment"></span>        [DllImport(<span class="stringliteral">&quot;MuPDFWrapper&quot;</span>, CallingConvention = CallingConvention.Cdecl)]</div>
<div class="line"><a id="l01471" name="l01471"></a><span class="lineno"> 1471</span>        <span class="keyword">internal</span> <span class="keyword">static</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> GetPermissions(IntPtr ctx, IntPtr doc);</div>
<div class="line"><a id="l01472" name="l01472"></a><span class="lineno"> 1472</span>    }</div>
<div class="line"><a id="l01473" name="l01473"></a><span class="lineno"> 1473</span>}</div>
<div class="ttc" id="aclass_mu_p_d_f_core_1_1_disposable_int_ptr_html"><div class="ttname"><a href="class_mu_p_d_f_core_1_1_disposable_int_ptr.html">MuPDFCore.DisposableIntPtr</a></div><div class="ttdoc">An IDisposable wrapper around an IntPtr that frees the allocated memory when it is disposed.</div><div class="ttdef"><b>Definition:</b> <a href="_mu_p_d_f_8cs_source.html#l00406">MuPDF.cs:407</a></div></div>
<div class="ttc" id="aclass_mu_p_d_f_core_1_1_disposable_int_ptr_html_a2b38ee4942d24d3282edd15268013887"><div class="ttname"><a href="class_mu_p_d_f_core_1_1_disposable_int_ptr.html#a2b38ee4942d24d3282edd15268013887">MuPDFCore.DisposableIntPtr.DisposableIntPtr</a></div><div class="ttdeci">DisposableIntPtr(IntPtr pointer, long bytesAllocated)</div><div class="ttdoc">Create a new DisposableIntPtr, adding memory pressure to the GC to account for the allocation of unma...</div><div class="ttdef"><b>Definition:</b> <a href="_mu_p_d_f_8cs_source.html#l00432">MuPDF.cs:432</a></div></div>
<div class="ttc" id="aclass_mu_p_d_f_core_1_1_disposable_int_ptr_html_ab9829c61cf710e0ad619ea712eacd2d8"><div class="ttname"><a href="class_mu_p_d_f_core_1_1_disposable_int_ptr.html#ab9829c61cf710e0ad619ea712eacd2d8">MuPDFCore.DisposableIntPtr.DisposableIntPtr</a></div><div class="ttdeci">DisposableIntPtr(IntPtr pointer)</div><div class="ttdoc">Create a new DisposableIntPtr.</div><div class="ttdef"><b>Definition:</b> <a href="_mu_p_d_f_8cs_source.html#l00422">MuPDF.cs:422</a></div></div>
<div class="ttc" id="aclass_mu_p_d_f_core_1_1_document_locked_exception_html"><div class="ttname"><a href="class_mu_p_d_f_core_1_1_document_locked_exception.html">MuPDFCore.DocumentLockedException</a></div><div class="ttdoc">The exception that is thrown when an attempt is made to render an encrypted document without supplyin...</div><div class="ttdef"><b>Definition:</b> <a href="_mu_p_d_f_8cs_source.html#l00494">MuPDF.cs:495</a></div></div>
<div class="ttc" id="aclass_mu_p_d_f_core_1_1_message_event_args_html"><div class="ttname"><a href="class_mu_p_d_f_core_1_1_message_event_args.html">MuPDFCore.MessageEventArgs</a></div><div class="ttdoc">EventArgs for the MuPDF.StandardOutputMessage and MuPDF.StandardErrorMessage events.</div><div class="ttdef"><b>Definition:</b> <a href="_mu_p_d_f_8cs_source.html#l00550">MuPDF.cs:551</a></div></div>
<div class="ttc" id="aclass_mu_p_d_f_core_1_1_message_event_args_html_a2a4d28e399d85be595c93071e15c4db8"><div class="ttname"><a href="class_mu_p_d_f_core_1_1_message_event_args.html#a2a4d28e399d85be595c93071e15c4db8">MuPDFCore.MessageEventArgs.Message</a></div><div class="ttdeci">string Message</div><div class="ttdoc">The message that has been logged.</div><div class="ttdef"><b>Definition:</b> <a href="_mu_p_d_f_8cs_source.html#l00555">MuPDF.cs:555</a></div></div>
<div class="ttc" id="aclass_mu_p_d_f_core_1_1_message_event_args_html_afe688c008fc2c4fe201ce806102acc34"><div class="ttname"><a href="class_mu_p_d_f_core_1_1_message_event_args.html#afe688c008fc2c4fe201ce806102acc34">MuPDFCore.MessageEventArgs.MessageEventArgs</a></div><div class="ttdeci">MessageEventArgs(string message)</div><div class="ttdoc">Create a new MessageEventArgs instance.</div><div class="ttdef"><b>Definition:</b> <a href="_mu_p_d_f_8cs_source.html#l00561">MuPDF.cs:561</a></div></div>
<div class="ttc" id="aclass_mu_p_d_f_core_1_1_mu_p_d_f_exception_html"><div class="ttname"><a href="class_mu_p_d_f_core_1_1_mu_p_d_f_exception.html">MuPDFCore.MuPDFException</a></div><div class="ttdoc">The exception that is thrown when a MuPDF operation fails.</div><div class="ttdef"><b>Definition:</b> <a href="_mu_p_d_f_8cs_source.html#l00478">MuPDF.cs:479</a></div></div>
<div class="ttc" id="aclass_mu_p_d_f_core_1_1_mu_p_d_f_exception_html_afcff57d78e7e1ebdb246c7cda6488054"><div class="ttname"><a href="class_mu_p_d_f_core_1_1_mu_p_d_f_exception.html#afcff57d78e7e1ebdb246c7cda6488054">MuPDFCore.MuPDFException.ErrorCode</a></div><div class="ttdeci">readonly ExitCodes ErrorCode</div><div class="ttdoc">The ExitCodes returned by the native function.</div><div class="ttdef"><b>Definition:</b> <a href="_mu_p_d_f_8cs_source.html#l00483">MuPDF.cs:483</a></div></div>
<div class="ttc" id="aclass_mu_p_d_f_core_1_1_mu_p_d_f_html"><div class="ttname"><a href="class_mu_p_d_f_core_1_1_mu_p_d_f.html">MuPDFCore.MuPDF</a></div><div class="ttdoc">Contains static methods to perform setup operations.</div><div class="ttdef"><b>Definition:</b> <a href="_mu_p_d_f_8cs_source.html#l00570">MuPDF.cs:571</a></div></div>
<div class="ttc" id="aclass_mu_p_d_f_core_1_1_mu_p_d_f_html_a4906a454ab32972d5c2bcf3d6213bac8"><div class="ttname"><a href="class_mu_p_d_f_core_1_1_mu_p_d_f.html#a4906a454ab32972d5c2bcf3d6213bac8">MuPDFCore.MuPDF.RedirectOutput</a></div><div class="ttdeci">static async Task RedirectOutput()</div><div class="ttdoc">Redirects output messages from the native MuPDF library to the StandardOutputMessage and StandardErro...</div><div class="ttdef"><b>Definition:</b> <a href="_mu_p_d_f_8cs_source.html#l00599">MuPDF.cs:599</a></div></div>
<div class="ttc" id="aclass_mu_p_d_f_core_1_1_mu_p_d_f_html_a74dfefba7aaea3ab4406dcde1ec6849e"><div class="ttname"><a href="class_mu_p_d_f_core_1_1_mu_p_d_f.html#a74dfefba7aaea3ab4406dcde1ec6849e">MuPDFCore.MuPDF.StandardOutputMessage</a></div><div class="ttdeci">static EventHandler&lt; MessageEventArgs &gt; StandardOutputMessage</div><div class="ttdoc">This event is invoked when RedirectOutput has been called and the native MuPDF library writes to the ...</div><div class="ttdef"><b>Definition:</b> <a href="_mu_p_d_f_8cs_source.html#l00588">MuPDF.cs:588</a></div></div>
<div class="ttc" id="aclass_mu_p_d_f_core_1_1_mu_p_d_f_html_ae0032d669163ae8d1ae6111f400a5047"><div class="ttname"><a href="class_mu_p_d_f_core_1_1_mu_p_d_f.html#ae0032d669163ae8d1ae6111f400a5047">MuPDFCore.MuPDF.StandardErrorMessage</a></div><div class="ttdeci">static EventHandler&lt; MessageEventArgs &gt; StandardErrorMessage</div><div class="ttdoc">This event is invoked when RedirectOutput has been called and the native MuPDF library writes to the ...</div><div class="ttdef"><b>Definition:</b> <a href="_mu_p_d_f_8cs_source.html#l00593">MuPDF.cs:593</a></div></div>
<div class="ttc" id="aclass_mu_p_d_f_core_1_1_mu_p_d_f_html_af990305716566eb39d123c0d3a857396"><div class="ttname"><a href="class_mu_p_d_f_core_1_1_mu_p_d_f.html#af990305716566eb39d123c0d3a857396">MuPDFCore.MuPDF.ResetOutput</a></div><div class="ttdeci">static void ResetOutput()</div><div class="ttdoc">Reset the default standard output and error streams for the native MuPDF library.</div><div class="ttdef"><b>Definition:</b> <a href="_mu_p_d_f_8cs_source.html#l00819">MuPDF.cs:819</a></div></div>
<div class="ttc" id="aclass_mu_p_d_f_core_1_1_render_progress_html"><div class="ttname"><a href="class_mu_p_d_f_core_1_1_render_progress.html">MuPDFCore.RenderProgress</a></div><div class="ttdoc">Holds a summary of the progress of the current rendering operation.</div><div class="ttdef"><b>Definition:</b> <a href="_mu_p_d_f_8cs_source.html#l00368">MuPDF.cs:369</a></div></div>
<div class="ttc" id="aclass_mu_p_d_f_core_1_1_render_progress_html_a5f65e7ff3637aa71ff177a42c348a5eb"><div class="ttname"><a href="class_mu_p_d_f_core_1_1_render_progress.html#a5f65e7ff3637aa71ff177a42c348a5eb">MuPDFCore.RenderProgress.ThreadRenderProgresses</a></div><div class="ttdeci">ThreadRenderProgress[] ThreadRenderProgresses</div><div class="ttdoc">Contains the progress of all the threads used in rendering the document.</div><div class="ttdef"><b>Definition:</b> <a href="_mu_p_d_f_8cs_source.html#l00395">MuPDF.cs:395</a></div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html"><div class="ttname"><a href="namespace_mu_p_d_f_core.html">MuPDFCore</a></div><div class="ttdef"><b>Definition:</b> <a href="_mu_p_d_f_8cs_source.html#l00026">MuPDF.cs:27</a></div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_a4cb9694810eeb8c98f699eac7bebeca6"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#a4cb9694810eeb8c98f699eac7bebeca6">MuPDFCore.DocumentOutputFileTypes</a></div><div class="ttdeci">DocumentOutputFileTypes</div><div class="ttdoc">Document file types supported in output by the library.</div><div class="ttdef"><b>Definition:</b> <a href="_mu_p_d_f_8cs_source.html#l00214">MuPDF.cs:215</a></div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_a4cb9694810eeb8c98f699eac7bebeca6acd15a75c26008696647b31a3f0de43b3"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#a4cb9694810eeb8c98f699eac7bebeca6acd15a75c26008696647b31a3f0de43b3">MuPDFCore.DocumentOutputFileTypes.SVG</a></div><div class="ttdeci">@ SVG</div><div class="ttdoc">Scalable Vector Graphics.</div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_a6f956802ff33af39b555fc95caf5486f"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#a6f956802ff33af39b555fc95caf5486f">MuPDFCore.InputFileTypes</a></div><div class="ttdeci">InputFileTypes</div><div class="ttdoc">File types supported in input by the library.</div><div class="ttdef"><b>Definition:</b> <a href="_mu_p_d_f_8cs_source.html#l00122">MuPDF.cs:123</a></div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_a6f956802ff33af39b555fc95caf5486fa030a56ad7ea4b8755a07a7e61eaa6e8d"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#a6f956802ff33af39b555fc95caf5486fa030a56ad7ea4b8755a07a7e61eaa6e8d">MuPDFCore.InputFileTypes.PNM</a></div><div class="ttdeci">@ PNM</div><div class="ttdoc">Portable aNyMap graphics format.</div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_a6f956802ff33af39b555fc95caf5486fa3986d1fd62384c8cdaa0e7c82f2740d1"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#a6f956802ff33af39b555fc95caf5486fa3986d1fd62384c8cdaa0e7c82f2740d1">MuPDFCore.InputFileTypes.FB2</a></div><div class="ttdeci">@ FB2</div><div class="ttdoc">FictionBook document.</div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_a6f956802ff33af39b555fc95caf5486fa55505ba281b015ec31f03ccb151b2a34"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#a6f956802ff33af39b555fc95caf5486fa55505ba281b015ec31f03ccb151b2a34">MuPDFCore.InputFileTypes.PNG</a></div><div class="ttdeci">@ PNG</div><div class="ttdoc">Portable Network Graphics format.</div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_a6f956802ff33af39b555fc95caf5486fa5c31b30ee6cc376dbc6882ca038161e5"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#a6f956802ff33af39b555fc95caf5486fa5c31b30ee6cc376dbc6882ca038161e5">MuPDFCore.InputFileTypes.EPUB</a></div><div class="ttdeci">@ EPUB</div><div class="ttdoc">Electronic PUBlication document.</div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_a6f956802ff33af39b555fc95caf5486fa907e06a16862d82ca6907a28a68d0ad6"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#a6f956802ff33af39b555fc95caf5486fa907e06a16862d82ca6907a28a68d0ad6">MuPDFCore.InputFileTypes.JPEG</a></div><div class="ttdeci">@ JPEG</div><div class="ttdoc">Joint Photographic Experts Group image.</div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_a6f956802ff33af39b555fc95caf5486fa95a66bab4c0c0fd8387e680daeff99a8"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#a6f956802ff33af39b555fc95caf5486fa95a66bab4c0c0fd8387e680daeff99a8">MuPDFCore.InputFileTypes.GIF</a></div><div class="ttdeci">@ GIF</div><div class="ttdoc">Graphics Interchange Format.</div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_a6f956802ff33af39b555fc95caf5486fa9b1f26de4b8088056d8998a85a576464"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#a6f956802ff33af39b555fc95caf5486fa9b1f26de4b8088056d8998a85a576464">MuPDFCore.InputFileTypes.XPS</a></div><div class="ttdeci">@ XPS</div><div class="ttdoc">XML Paper Specification document.</div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_a6f956802ff33af39b555fc95caf5486faa5d5ca1447586e23dc011f8c0cc0a6db"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#a6f956802ff33af39b555fc95caf5486faa5d5ca1447586e23dc011f8c0cc0a6db">MuPDFCore.InputFileTypes.BMP</a></div><div class="ttdeci">@ BMP</div><div class="ttdoc">Bitmap image.</div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_a6f956802ff33af39b555fc95caf5486fabcd1b68617759b1dfcff0403a6b5a8d1"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#a6f956802ff33af39b555fc95caf5486fabcd1b68617759b1dfcff0403a6b5a8d1">MuPDFCore.InputFileTypes.PDF</a></div><div class="ttdeci">@ PDF</div><div class="ttdoc">Portable Document Format.</div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_a6f956802ff33af39b555fc95caf5486face0dbe5045edda1a0e9686ce899798ea"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#a6f956802ff33af39b555fc95caf5486face0dbe5045edda1a0e9686ce899798ea">MuPDFCore.InputFileTypes.TIFF</a></div><div class="ttdeci">@ TIFF</div><div class="ttdoc">Tagged Image File Format.</div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_a6f956802ff33af39b555fc95caf5486fade8e361453cf9f764a4abe9d486f8fbe"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#a6f956802ff33af39b555fc95caf5486fade8e361453cf9f764a4abe9d486f8fbe">MuPDFCore.InputFileTypes.CBZ</a></div><div class="ttdeci">@ CBZ</div><div class="ttdoc">Comic book archive file (ZIP archive containing page scans).</div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_a6f956802ff33af39b555fc95caf5486faf2a62109ee6526c8760e4e7497861aac"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#a6f956802ff33af39b555fc95caf5486faf2a62109ee6526c8760e4e7497861aac">MuPDFCore.InputFileTypes.PAM</a></div><div class="ttdeci">@ PAM</div><div class="ttdoc">Portable Arbitrary Map graphics format.</div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_a789c0ee2f3e1b7e939c1a94921119f02"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#a789c0ee2f3e1b7e939c1a94921119f02">MuPDFCore.EncryptionState</a></div><div class="ttdeci">EncryptionState</div><div class="ttdoc">Possible document encryption states.</div><div class="ttdef"><b>Definition:</b> <a href="_mu_p_d_f_8cs_source.html#l00261">MuPDF.cs:262</a></div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_a789c0ee2f3e1b7e939c1a94921119f02a12a47fe2191718837d09d52b17419ec2"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#a789c0ee2f3e1b7e939c1a94921119f02a12a47fe2191718837d09d52b17419ec2">MuPDFCore.EncryptionState.Unencrypted</a></div><div class="ttdeci">@ Unencrypted</div><div class="ttdoc">The document is not encrypted.</div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_a789c0ee2f3e1b7e939c1a94921119f02ac76fd517e45cc95709f4ac106efa4a94"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#a789c0ee2f3e1b7e939c1a94921119f02ac76fd517e45cc95709f4ac106efa4a94">MuPDFCore.EncryptionState.Unlocked</a></div><div class="ttdeci">@ Unlocked</div><div class="ttdoc">The document is encrypted and the correct user password has been supplied.</div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_a789c0ee2f3e1b7e939c1a94921119f02adef09fa4a833717d38298eb37c861af8"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#a789c0ee2f3e1b7e939c1a94921119f02adef09fa4a833717d38298eb37c861af8">MuPDFCore.EncryptionState.Encrypted</a></div><div class="ttdeci">@ Encrypted</div><div class="ttdoc">The document is encrypted and a user password is necessary to render it.</div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_a8508181e09f4f3d05dfd9555e9519331"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#a8508181e09f4f3d05dfd9555e9519331">MuPDFCore.RestrictionState</a></div><div class="ttdeci">RestrictionState</div><div class="ttdoc">Possible document restriction states.</div><div class="ttdef"><b>Definition:</b> <a href="_mu_p_d_f_8cs_source.html#l00282">MuPDF.cs:283</a></div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_a8508181e09f4f3d05dfd9555e9519331a89c6caacc7047b0a535412d7f939f870"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#a8508181e09f4f3d05dfd9555e9519331a89c6caacc7047b0a535412d7f939f870">MuPDFCore.RestrictionState.Unrestricted</a></div><div class="ttdeci">@ Unrestricted</div><div class="ttdoc">The document does not have any restrictions associated to it.</div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_a8508181e09f4f3d05dfd9555e9519331aecdee5de15af6876cfab0801bb36f445"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#a8508181e09f4f3d05dfd9555e9519331aecdee5de15af6876cfab0801bb36f445">MuPDFCore.RestrictionState.Restricted</a></div><div class="ttdeci">@ Restricted</div><div class="ttdoc">Some restrictions apply to the document. An owner password is required to remove these restrictions.</div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_aa6919d62a772f0334777d47f9c2d6c59"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#aa6919d62a772f0334777d47f9c2d6c59">MuPDFCore.ExitCodes</a></div><div class="ttdeci">ExitCodes</div><div class="ttdoc">Exit codes returned by native methods describing various errors that can occur.</div><div class="ttdef"><b>Definition:</b> <a href="_mu_p_d_f_8cs_source.html#l00031">MuPDF.cs:32</a></div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_aa6919d62a772f0334777d47f9c2d6c59a0cf3f4e04e6e130e6b2fe7fcb3b56514"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#aa6919d62a772f0334777d47f9c2d6c59a0cf3f4e04e6e130e6b2fe7fcb3b56514">MuPDFCore.ExitCodes.ERR_CANNOT_OPEN_FILE</a></div><div class="ttdeci">@ ERR_CANNOT_OPEN_FILE</div><div class="ttdoc">An error occurred while opening a file.</div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_aa6919d62a772f0334777d47f9c2d6c59a1ea4e7a692221b58c56eefb81f8948ce"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#aa6919d62a772f0334777d47f9c2d6c59a1ea4e7a692221b58c56eefb81f8948ce">MuPDFCore.ExitCodes.ERR_CANNOT_INIT_MUTEX</a></div><div class="ttdeci">@ ERR_CANNOT_INIT_MUTEX</div><div class="ttdoc">An error occurred while initialising the mutexes for the lock mechanism.</div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_aa6919d62a772f0334777d47f9c2d6c59a2069854c805b265111026c25d0bc289e"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#aa6919d62a772f0334777d47f9c2d6c59a2069854c805b265111026c25d0bc289e">MuPDFCore.ExitCodes.ERR_CANNOT_COUNT_PAGES</a></div><div class="ttdeci">@ ERR_CANNOT_COUNT_PAGES</div><div class="ttdoc">An error occurred while determining the total number of pages in the document.</div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_aa6919d62a772f0334777d47f9c2d6c59a2135fb9898d6144b6f07bfa53be568b8"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#aa6919d62a772f0334777d47f9c2d6c59a2135fb9898d6144b6f07bfa53be568b8">MuPDFCore.ExitCodes.ERR_CANNOT_OPEN_STREAM</a></div><div class="ttdeci">@ ERR_CANNOT_OPEN_STREAM</div><div class="ttdoc">An error occurred while opening the stream.</div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_aa6919d62a772f0334777d47f9c2d6c59a28b393e44874f1d095f7c1281de0ffc2"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#aa6919d62a772f0334777d47f9c2d6c59a28b393e44874f1d095f7c1281de0ffc2">MuPDFCore.ExitCodes.EXIT_SUCCESS</a></div><div class="ttdeci">@ EXIT_SUCCESS</div><div class="ttdoc">No error occurred. All is well.</div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_aa6919d62a772f0334777d47f9c2d6c59a29a0556711fd1d509ffaf28d4e310bf9"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#aa6919d62a772f0334777d47f9c2d6c59a29a0556711fd1d509ffaf28d4e310bf9">MuPDFCore.ExitCodes.ERR_CANNOT_SAVE</a></div><div class="ttdeci">@ ERR_CANNOT_SAVE</div><div class="ttdoc">An error occurred while saving the page to a raster image file.</div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_aa6919d62a772f0334777d47f9c2d6c59a39b183f9aa381c0a658eea8d21ae18fc"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#aa6919d62a772f0334777d47f9c2d6c59a39b183f9aa381c0a658eea8d21ae18fc">MuPDFCore.ExitCodes.ERR_CANNOT_CLONE_CONTEXT</a></div><div class="ttdeci">@ ERR_CANNOT_CLONE_CONTEXT</div><div class="ttdoc">An error occurred while cloning the context.</div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_aa6919d62a772f0334777d47f9c2d6c59a3f66bfb083008aa950e19bd55e18ba4b"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#aa6919d62a772f0334777d47f9c2d6c59a3f66bfb083008aa950e19bd55e18ba4b">MuPDFCore.ExitCodes.ERR_CANNOT_CREATE_CONTEXT</a></div><div class="ttdeci">@ ERR_CANNOT_CREATE_CONTEXT</div><div class="ttdoc">An error occurred while creating the context object.</div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_aa6919d62a772f0334777d47f9c2d6c59a5721278b19873b32ad0b33a37153130b"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#aa6919d62a772f0334777d47f9c2d6c59a5721278b19873b32ad0b33a37153130b">MuPDFCore.ExitCodes.ERR_CANNOT_LOAD_PAGE</a></div><div class="ttdeci">@ ERR_CANNOT_LOAD_PAGE</div><div class="ttdoc">An error occurred while loading the page.</div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_aa6919d62a772f0334777d47f9c2d6c59a59c376560d2f34232de87c12482802de"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#aa6919d62a772f0334777d47f9c2d6c59a59c376560d2f34232de87c12482802de">MuPDFCore.ExitCodes.ERR_CANNOT_RENDER</a></div><div class="ttdeci">@ ERR_CANNOT_RENDER</div><div class="ttdoc">An error occurred while rendering the page.</div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_aa6919d62a772f0334777d47f9c2d6c59a7458e0b67daac2900065e77fdc8c9845"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#aa6919d62a772f0334777d47f9c2d6c59a7458e0b67daac2900065e77fdc8c9845">MuPDFCore.ExitCodes.ERR_CANNOT_POPULATE_PAGE</a></div><div class="ttdeci">@ ERR_CANNOT_POPULATE_PAGE</div><div class="ttdoc">An error occurred while populating the structured text page</div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_aa6919d62a772f0334777d47f9c2d6c59a996e6a66df495bef599119bd710ff138"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#aa6919d62a772f0334777d47f9c2d6c59a996e6a66df495bef599119bd710ff138">MuPDFCore.ExitCodes.ERR_CANNOT_CREATE_PAGE</a></div><div class="ttdeci">@ ERR_CANNOT_CREATE_PAGE</div><div class="ttdoc">An error occurred while creating an empty structured text page.</div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_aa6919d62a772f0334777d47f9c2d6c59ab0e97dc320dccbe7ba125b739a0e907a"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#aa6919d62a772f0334777d47f9c2d6c59ab0e97dc320dccbe7ba125b739a0e907a">MuPDFCore.ExitCodes.ERR_CANNOT_CREATE_WRITER</a></div><div class="ttdeci">@ ERR_CANNOT_CREATE_WRITER</div><div class="ttdoc">An error occurred while creating the document writer.</div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_aa6919d62a772f0334777d47f9c2d6c59ab5f04447fc2be743ee90433c6102b2c7"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#aa6919d62a772f0334777d47f9c2d6c59ab5f04447fc2be743ee90433c6102b2c7">MuPDFCore.ExitCodes.ERR_CANNOT_COMPUTE_BOUNDS</a></div><div class="ttdeci">@ ERR_CANNOT_COMPUTE_BOUNDS</div><div class="ttdoc">An error occurred while computing the page bounds.</div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_aa6919d62a772f0334777d47f9c2d6c59ac2a53c854bd7df2cb83c33fe5e9c9f72"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#aa6919d62a772f0334777d47f9c2d6c59ac2a53c854bd7df2cb83c33fe5e9c9f72">MuPDFCore.ExitCodes.ERR_CANNOT_REGISTER_HANDLERS</a></div><div class="ttdeci">@ ERR_CANNOT_REGISTER_HANDLERS</div><div class="ttdoc">An error occurred while registering the default document handlers with the context.</div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_aa6919d62a772f0334777d47f9c2d6c59ad1ec485635100cd9f67621545c57c092"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#aa6919d62a772f0334777d47f9c2d6c59ad1ec485635100cd9f67621545c57c092">MuPDFCore.ExitCodes.ERR_CANNOT_CREATE_BUFFER</a></div><div class="ttdeci">@ ERR_CANNOT_CREATE_BUFFER</div><div class="ttdoc">An error occurred while creating the output buffer.</div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_aa6919d62a772f0334777d47f9c2d6c59afc8882584a964901c4ff7664a4149ad1"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#aa6919d62a772f0334777d47f9c2d6c59afc8882584a964901c4ff7664a4149ad1">MuPDFCore.ExitCodes.ERR_CANNOT_CLOSE_DOCUMENT</a></div><div class="ttdeci">@ ERR_CANNOT_CLOSE_DOCUMENT</div><div class="ttdoc">An error occurred while finalising the document file.</div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_abff8cbdf3a6dcdbcd7b52a8696ac2595"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#abff8cbdf3a6dcdbcd7b52a8696ac2595">MuPDFCore.DocumentRestrictions</a></div><div class="ttdeci">DocumentRestrictions</div><div class="ttdoc">Document restrictions.</div><div class="ttdef"><b>Definition:</b> <a href="_mu_p_d_f_8cs_source.html#l00303">MuPDF.cs:304</a></div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_abff8cbdf3a6dcdbcd7b52a8696ac2595a13dba24862cf9128167a59100e154c8d"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#abff8cbdf3a6dcdbcd7b52a8696ac2595a13dba24862cf9128167a59100e154c8d">MuPDFCore.DocumentRestrictions.Print</a></div><div class="ttdeci">@ Print</div><div class="ttdoc">Printing the document is restricted.</div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_abff8cbdf3a6dcdbcd7b52a8696ac2595a5493350be66a200980ee57ddd9debc1b"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#abff8cbdf3a6dcdbcd7b52a8696ac2595a5493350be66a200980ee57ddd9debc1b">MuPDFCore.DocumentRestrictions.Annotate</a></div><div class="ttdeci">@ Annotate</div><div class="ttdoc">Annotating the document is restricted.</div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_abff8cbdf3a6dcdbcd7b52a8696ac2595a5fb63579fc981698f97d55bfecb213ea"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#abff8cbdf3a6dcdbcd7b52a8696ac2595a5fb63579fc981698f97d55bfecb213ea">MuPDFCore.DocumentRestrictions.Copy</a></div><div class="ttdeci">@ Copy</div><div class="ttdoc">Copying the document is restricted.</div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_abff8cbdf3a6dcdbcd7b52a8696ac2595a6adf97f83acf6453d4a6a4b1070f3754"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#abff8cbdf3a6dcdbcd7b52a8696ac2595a6adf97f83acf6453d4a6a4b1070f3754">MuPDFCore.DocumentRestrictions.None</a></div><div class="ttdeci">@ None</div><div class="ttdoc">No operation is restricted.</div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_abff8cbdf3a6dcdbcd7b52a8696ac2595a7dce122004969d56ae2e0245cb754d35"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#abff8cbdf3a6dcdbcd7b52a8696ac2595a7dce122004969d56ae2e0245cb754d35">MuPDFCore.DocumentRestrictions.Edit</a></div><div class="ttdeci">@ Edit</div><div class="ttdoc">Editing the document is restricted.</div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_ade1eb4d4f9c9c8a66bde9152ea9e41bb"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#ade1eb4d4f9c9c8a66bde9152ea9e41bb">MuPDFCore.PixelFormats</a></div><div class="ttdeci">PixelFormats</div><div class="ttdoc">Pixel formats supported by the library.</div><div class="ttdef"><b>Definition:</b> <a href="_mu_p_d_f_8cs_source.html#l00235">MuPDF.cs:236</a></div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_ade1eb4d4f9c9c8a66bde9152ea9e41bba2ad5640ebdec72fc79531d1778c6c2dc"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#ade1eb4d4f9c9c8a66bde9152ea9e41bba2ad5640ebdec72fc79531d1778c6c2dc">MuPDFCore.PixelFormats.BGR</a></div><div class="ttdeci">@ BGR</div><div class="ttdoc">24bpp BGR format.</div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_ade1eb4d4f9c9c8a66bde9152ea9e41bba5a1fe3c61c9e2fd6dbbc823589f6e697"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#ade1eb4d4f9c9c8a66bde9152ea9e41bba5a1fe3c61c9e2fd6dbbc823589f6e697">MuPDFCore.PixelFormats.BGRA</a></div><div class="ttdeci">@ BGRA</div><div class="ttdoc">32bpp BGRA format.</div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_ade1eb4d4f9c9c8a66bde9152ea9e41bba889574aebacda6bfd3e534e2b49b8028"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#ade1eb4d4f9c9c8a66bde9152ea9e41bba889574aebacda6bfd3e534e2b49b8028">MuPDFCore.PixelFormats.RGB</a></div><div class="ttdeci">@ RGB</div><div class="ttdoc">24bpp RGB format.</div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_ade1eb4d4f9c9c8a66bde9152ea9e41bbaea3495a278957dc58165e48a8945469f"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#ade1eb4d4f9c9c8a66bde9152ea9e41bbaea3495a278957dc58165e48a8945469f">MuPDFCore.PixelFormats.RGBA</a></div><div class="ttdeci">@ RGBA</div><div class="ttdoc">32bpp RGBA format.</div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_ae9af8906676327d741663484e282c9a9"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#ae9af8906676327d741663484e282c9a9">MuPDFCore.PasswordTypes</a></div><div class="ttdeci">PasswordTypes</div><div class="ttdoc">Password types.</div><div class="ttdef"><b>Definition:</b> <a href="_mu_p_d_f_8cs_source.html#l00334">MuPDF.cs:335</a></div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_ae9af8906676327d741663484e282c9a9a8f9bfe9d1345237cb3b2b205864da075"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#ae9af8906676327d741663484e282c9a9a8f9bfe9d1345237cb3b2b205864da075">MuPDFCore.PasswordTypes.User</a></div><div class="ttdeci">@ User</div><div class="ttdoc">The password corresponds to the user password.</div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_ae9af8906676327d741663484e282c9a9ab6f4a2ec6356bbd56d49f2096bf9d3d3"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#ae9af8906676327d741663484e282c9a9ab6f4a2ec6356bbd56d49f2096bf9d3d3">MuPDFCore.PasswordTypes.Owner</a></div><div class="ttdeci">@ Owner</div><div class="ttdoc">The password corresponds to the owner password.</div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_afb84d65324afe9d4edaf5b15c128bc7e"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#afb84d65324afe9d4edaf5b15c128bc7e">MuPDFCore.RasterOutputFileTypes</a></div><div class="ttdeci">RasterOutputFileTypes</div><div class="ttdoc">Raster image file types supported in output by the library.</div><div class="ttdef"><b>Definition:</b> <a href="_mu_p_d_f_8cs_source.html#l00188">MuPDF.cs:189</a></div></div>
<div class="ttc" id="anamespace_mu_p_d_f_core_html_afb84d65324afe9d4edaf5b15c128bc7ea9c0ec6bfdae0da828545d2d836f34d02"><div class="ttname"><a href="namespace_mu_p_d_f_core.html#afb84d65324afe9d4edaf5b15c128bc7ea9c0ec6bfdae0da828545d2d836f34d02">MuPDFCore.RasterOutputFileTypes.PSD</a></div><div class="ttdeci">@ PSD</div><div class="ttdoc">PhotoShop Document format.</div></div>
<div class="ttc" id="astruct_mu_p_d_f_core_1_1_render_progress_1_1_thread_render_progress_html"><div class="ttname"><a href="struct_mu_p_d_f_core_1_1_render_progress_1_1_thread_render_progress.html">MuPDFCore.RenderProgress.ThreadRenderProgress</a></div><div class="ttdoc">Holds the progress of a single thread.</div><div class="ttdef"><b>Definition:</b> <a href="_mu_p_d_f_8cs_source.html#l00373">MuPDF.cs:374</a></div></div>
<div class="ttc" id="astruct_mu_p_d_f_core_1_1_render_progress_1_1_thread_render_progress_html_a99d8a959dd4b9a4d7ed2cbce64564c1c"><div class="ttname"><a href="struct_mu_p_d_f_core_1_1_render_progress_1_1_thread_render_progress.html#a99d8a959dd4b9a4d7ed2cbce64564c1c">MuPDFCore.RenderProgress.ThreadRenderProgress.Progress</a></div><div class="ttdeci">int Progress</div><div class="ttdoc">The current progress.</div><div class="ttdef"><b>Definition:</b> <a href="_mu_p_d_f_8cs_source.html#l00378">MuPDF.cs:378</a></div></div>
<div class="ttc" id="astruct_mu_p_d_f_core_1_1_render_progress_1_1_thread_render_progress_html_a9c38fa62f1a38b504e428d33b7e6bc50"><div class="ttname"><a href="struct_mu_p_d_f_core_1_1_render_progress_1_1_thread_render_progress.html#a9c38fa62f1a38b504e428d33b7e6bc50">MuPDFCore.RenderProgress.ThreadRenderProgress.MaxProgress</a></div><div class="ttdeci">long MaxProgress</div><div class="ttdoc">The maximum progress. If this is 0, this value could not be determined (yet).</div><div class="ttdef"><b>Definition:</b> <a href="_mu_p_d_f_8cs_source.html#l00383">MuPDF.cs:383</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_d84f90bba075742c2a9090e1ba7aabcd.html">MuPDFCore</a></li><li class="navelem"><b>MuPDF.cs</b></li>
    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
  </ul>
</div>
</body>
</html>
